为什么我的VBS脚本文件在复制到我的ASP页面时不起作用?

时间:2009-04-17 20:16:58

标签: asp-classic vbscript active-directory

我从命令窗口调用时,我的脚本查询Active Directory工作,但它不能在我的ASP页面上运行。我使用的不是VBS文件中的echo("message") 我的ASP中Response.Redirect(message)。所以这里的代码在CMD窗口中工作正常,但在IE中却没有。无论如何,我希望有人可以提供帮助。

Option Explicit

Dim objRootDSE, strDNSDomain, objCommand, objConnection
Dim strQuery, strBase, strFilter, strAttributes
Dim objRecordSet, strAlias, strName, strSAM
Dim blnFlag

''// Use ADO to search Active Directory.
Set objCommand = CreateObject("ADODB.Command")
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
objCommand.ActiveConnection = objConnection

''// Set AD query propeties
strBase = "<LDAP://10.10.10.10>"
strFilter = "(&(objectCategory=person)(objectClass=user)(cn="gossmari")"
strAttributes = "displayName,mailNickname,sAMAccountName"

''// AD query
strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"
objCommand.CommandText = strQuery
objCommand.Properties("Page Size") = 100
objCommand.Properties("Cache Results") = False
Set objRecordSet = objCommand.Execute

    Do Until objRecordSet.EOF
       strName = objRecordSet.Fields("displayName")
       strAlias = objRecordSet.Fields("mailNickname")
       strSAM = objRecordSet.Fields("sAMAccountName")
       objRecordSet.MoveNext
    Loop

''// Echo the requested information 
''// replaced by Response.Redirect("http://www.google.com/" & strName)
Wscript.Echo strSAM & " ; " & strAlias & " ;   " & strName

objConnection.Close

编辑:我一直得到的错误是: 处理URL时服务器上发生错误。请联系系统管理员。 如果您是系统管理员,请单击此处以了解有关此错误的更多信息。

我的电脑正在运行Windows Vista,我真的开始讨厌它了

2 个答案:

答案 0 :(得分:1)

它返回了什么错误?

一个可能的原因可能是ASP页面正在执行的凭据没有查询Active Directory的权限。如果它是默认网页,它可能运行匿名身份验证,转换为[LOCALMACHINE] \ IUSR_ [LOCALMACHINE]。

这可以解释为什么它在您的凭据下运行时运行,而不是在IIS的上下文中运行。

答案 1 :(得分:0)

实际上给我们错误信息会有所帮助。

如果你在盒子外面运行IE,你将看不到它。转到“工具”,“Internet选项”,“高级”选项卡,然后关闭“显示友好的HTTP错误消息”

由于默认匿名IIS用户运行的安全上下文,通常访问活动目录等内容将无法正常工作,因此如果切换到集成安全性,则可能会更进一步。