Excel-VBA - Immer ein Benutzer der LDAP-string korrigieren

Ich weiß nicht, was mit mir Los ist, aber ich kann nicht diese Zeichenfolge richtig! Ich habe das Excel-sheet von Benutzer-Informationen, und ich will eine Verbindung zu AD per LDAP, aber ich bekomme diese Automatisierungsfehler '-2147217900 (80040e14 bei)', was wahrscheinlich bedeutet, dass es einen syntax-Fehler in der LDAP-string. Nun, ich verwenden Sie diese Funktion zum abholen der Benutzer definierten Namen. Dann bin ich zurück, und versuchen Sie, führen Sie es durch adoConnection.Ausführen.

Dem zurückgegeben, die LDAP-string sieht wie folgt aus:

<LDAP://CN=Bowie\,David,OU=Geniouses,OU=Music,DC=MasterDomain,DC=local>;ADsPath;subtree

Der code sieht so aus:

ldapStr = "<LDAP://" & getUsersDN("dbowie") & ">;ADsPath;subtree"

Funktion wie diese:

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
InformationsquelleAutor Kenny Bones | 2011-06-23
Schreibe einen Kommentar