Asp classic 为什么我的VBS脚本文件没有';复制到我的ASP页面时无法工作?

Asp classic 为什么我的VBS脚本文件没有';复制到我的ASP页面时无法工作?,asp-classic,vbscript,active-directory,Asp Classic,Vbscript,Active Directory,当从命令窗口调用Active Directory时,我得到了查询Active Directory的脚本,但它在我的ASP页面上无法工作。我使用了 Response.Redirect(message)在我的ASP。下面的代码在CMD窗口中运行良好,但在IE中运行不好。无论如何,我希望有人能提供帮助 Option Explicit Dim objRootDSE, strDNSDomain, objCommand, objConnection Dim strQuery, strBase, strFi

当从命令窗口调用Active Directory时,我得到了查询Active Directory的脚本,但它在我的ASP页面上无法工作。我使用了
Response.Redirect(message)
在我的ASP。下面的代码在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
选项显式
Dim OBJrootdes、strndsDomain、objCommand、objConnection
Dim strQuery、strBase、strFilter、strAttributes
Dim objRecordSet、strAlias、strName、strSAM
模糊模糊模糊
''//使用ADO搜索Active Directory。
设置objCommand=CreateObject(“ADODB.Command”)
设置objConnection=CreateObject(“ADODB.Connection”)
objConnection.Provider=“ADsDSOObject”
objConnection.打开“Active Directory提供程序”
objCommand.ActiveConnection=objConnection
''//设置AD查询属性
strBase=“”
strFilter=“(&(objectCategory=person)(objectClass=user)(cn=“gossmari”)”
strAttributes=“显示名称、邮件昵称、sAMAccountName”
''//AD查询
strQuery=strBase&“;”&strFilter&“;”&strAttributes&“子树”
objCommand.CommandText=strQuery
objCommand.Properties(“页面大小”)=100
objCommand.Properties(“缓存结果”)=False
Set objRecordSet=objCommand.Execute
直到objRecordSet.EOF为止
strName=objRecordSet.Fields(“显示名称”)
strAlias=objRecordSet.Fields(“邮件昵称”)
strSAM=objRecordSet.Fields(“sAMAccountName”)
objRecordSet.MoveNext
环
''//回显请求的信息
''//替换为响应。重定向('http://www.google.com/“&strName)
Wscript.Echo strSAM&“;”&strAlias&“;”&strName
对象连接。关闭
编辑:我一直得到的错误是: 处理URL时服务器出错。请与系统管理员联系。 如果您是系统管理员,请单击此处了解有关此错误的更多信息


我的电脑运行的是windows vista,我真的开始讨厌它了

实际上,给我们错误消息会有所帮助

如果您正在运行IE,您将看不到它。转到“工具”、“Internet选项”、“高级”选项卡并关闭“显示友好的HTTP错误消息”


通常,由于默认匿名IIS用户运行的安全上下文,访问active directory之类的内容将不起作用,因此,如果切换到集成安全,您可能会得到更进一步的信息。

返回什么错误

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


这将解释为什么它在您的凭据下运行时会运行,但不会在IIS的上下文中运行。

该代码也不会作为VBS运行。您在以strFilter开头的行中遇到了报价问题…而且它对您收到的错误消息也很有帮助。(还有Response.Redirect重定向浏览器,Response.Write writes out…)