Asp classic VBscript从CN搜索sAMAccountName

Asp classic VBscript从CN搜索sAMAccountName,asp-classic,vbscript,active-directory,Asp Classic,Vbscript,Active Directory,我编写了这个脚本,它通过VBscript从广告中提取指定用户的sAMAccountName,但它似乎只在我自己的OU组中工作。这是因为我的公司有权限限制吗?或者这是因为我在代码中没有看到什么 函数getsAMAccountName(名称) Dim ADO命令、ADO连接、strBase、strFilter、strAttributes Dim objRootDSE、strndsDomain、strQuery、adoRecordset、strsAM、objUser Set adoCommand=Cr

我编写了这个脚本,它通过VBscript从广告中提取指定用户的sAMAccountName,但它似乎只在我自己的OU组中工作。这是因为我的公司有权限限制吗?或者这是因为我在代码中没有看到什么

函数getsAMAccountName(名称) Dim ADO命令、ADO连接、strBase、strFilter、strAttributes Dim objRootDSE、strndsDomain、strQuery、adoRecordset、strsAM、objUser Set adoCommand=CreateObject(“ADODB.Command”) 设置adoConnection=CreateObject(“ADODB.Connection”) adoConnection.Provider=“ADsDSOObject” adoConnection。打开“Active Directory提供程序” 设置adoCommand.ActiveConnection=adoConnection 设置objRootDSE=GetObject(“LDAP://RootDSE”) strndsdomain=objRootDSE.Get(“defaultNamingContext”) msgbox strndsDomain strBase=“” '确保已正确引用传递的var usersel strFilter=“(cn=“&name&”) strAttributes=“differentiedname” strQuery=strBase&“;”&strFilter&“;”&strAttributes&“子树” adoCommand.CommandText=strQuery adoCommand.Properties(“页面大小”)=100 adoCommand.Properties(“超时”)=30 adoCommand.Properties(“缓存结果”)=False Set adoRecordset=adoCommand.Execute 直到adoRecordset.EOF为止 strsAM=adoRecordset.Fields(“differentiedName”).Value Set objUser=GetObject(“LDAP://”和strsAM) getsAMAccountName=objUser.sAMAccountName adoRecordset.MoveNext 环 adoRecordset,关闭 连接,关闭 端函数
在GetObject调用中指定OU时是否有效

GetObject("LDAP://OU=YourOU,DC=YourDomain,DC=com")

从这个问题来看,

最后是权限,请确保在将LDAP拉取移动到asp classic时包含/指定processID和PW。。。避免asp经典

Set adoConnection = CreateObject("ADODB.Connection")                
            adoConnection.Provider = "ADsDSOObject"
                With adoConnection
                    .Properties("User ID") = ' Process ID goes
                    .Properties("Password") = 'password
                    .Properties("encrypt password") = True
                End With

        adoConnection.Open "Active Directory Provider"
        Set adoCommand = CreateObject("ADODB.Command")
        Set adoCommand.ActiveConnection = adoConnection

看起来,当我将
Set-objRootDSE=GetObject(“LDAP://RootDSE”)
更改为下一行的特定OU-it错误时,
strndsdomain
这几行代码也会在asp经典页面上产生错误,“activex元素无法创建”
GetObject("LDAP://OU=YourOU,DC=YourDomain,DC=com")
Set adoConnection = CreateObject("ADODB.Connection")                
            adoConnection.Provider = "ADsDSOObject"
                With adoConnection
                    .Properties("User ID") = ' Process ID goes
                    .Properties("Password") = 'password
                    .Properties("encrypt password") = True
                End With

        adoConnection.Open "Active Directory Provider"
        Set adoCommand = CreateObject("ADODB.Command")
        Set adoCommand.ActiveConnection = adoConnection