【发布时间】:2011-06-23 16:15:32
【问题描述】:
我不知道我出了什么问题,但我无法正确处理这个字符串!我有这张 Excel 用户信息表,我想通过 LDAP 连接到 AD,但我收到了这个自动化错误“-2147217900 (80040e14)”,这可能意味着 LDAP 字符串中存在语法错误。现在,我使用这个函数来获取用户的专有名称。然后我返回它并尝试通过 adoConnection.Execute 传递它。
返回的 LDAP 字符串如下所示:
<LDAP://CN=Bowie\,David,OU=Geniouses,OU=Music,DC=MasterDomain,DC=local>;ADsPath;subtree
代码如下所示:
ldapStr = "<LDAP://" & getUsersDN("dbowie") & ">;ADsPath;subtree"
函数如下:
Public Function getUsersDN(ByVal strUsername As String)
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"SELECT distinguishedName FROM 'LDAP://dc=MasterDomain,dc=local' " & _
"WHERE objectCategory='user' " & _
"AND sAMAccountName='" & strUsername & "'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
strDN = objRecordSet.Fields("distinguishedName").Value
getUsersDN = strDN
objRecordSet.MoveNext
Loop
End Function
【问题讨论】:
标签: vba vbscript active-directory excel ldap