Skip to content

Instantly share code, notes, and snippets.

@Clijsters
Created October 19, 2015 19:32
Show Gist options
  • Save Clijsters/42bb388abf6d32e4fc67 to your computer and use it in GitHub Desktop.
Save Clijsters/42bb388abf6d32e4fc67 to your computer and use it in GitHub Desktop.
Simple LDAP Query for cscript
'================
'Fragt ein LDAP-Verzeichnis ab.
'In dem Fall wird ein Domaincontroller nach den Domänenobjekten befragt.
'Unter "'Abfrage definieren" wird nach einer ObjectClass gefiltert
'================
'Option Explicit
Dim objRootDSE, strDNSDomain, adoCommand, adoConnection
Dim strBase, strFilter, strAttributes, strQuery, adoRecordset
Dim strDN, strUser, strPassword, objNS, strServer, objContainer
Const ADS_SECURE_AUTHENTICATION = &H1
Const ADS_SERVER_BIND = &H200
' Serveradresse
strServer = ""
' Benutzerdaten
strUser = ""
strPassword =""
' DNS Namen auflösen.
Set objNS = GetObject("LDAP:")
Set objRootDSE = objNS.OpenDSObject("LDAP://" & strServer & "/RootDSE", _
strUser, strPassword, _
ADS_SERVER_BIND Or ADS_SECURE_AUTHENTICATION)
strDNSDomain = objRootDSE.Get("defaultNamingContext")
' ADO verwenden, um ActiveDirectory abzufragen
Set adoCommand = CreateObject("ADODB.Command")
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.Provider = "ADsDSOObject"
adoConnection.Properties("User ID") = strUser
adoConnection.Properties("Password") = strPassword
adoConnection.Properties("Encrypt Password") = True
adoConnection.Properties("ADSI Flag") = ADS_SERVER_BIND
' Verbindung mit AD
adoConnection.Open "Active Directory Provider"
adoCommand.ActiveConnection = adoConnection
' LDAP-Pfad bilden
strBase = "<LDAP://" & strServer & "/" & strDNSDomain & ">"
' Abfrage definieren
strFilter = ""
' Das einzige Attribut, welches geholt wird, ist der DN
strAttributes = "distinguishedName"
' LDAP-Abfrage erstellen
strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"
' Abfrage ausführen
adoCommand.CommandText = strQuery
adoCommand.Properties("Page Size") = 100
adoCommand.Properties("Timeout") = 30
adoCommand.Properties("Cache Results") = False
Set adoRecordset = adoCommand.Execute
' Ergebnisse anzeigen
Do Until adoRecordset.EOF
' Variablen setzen
strDN = adoRecordset.Fields("distinguishedName").Value
Wscript.Echo strDN
adoRecordset.MoveNext
Loop
' Schließen
adoRecordset.Close
adoConnection.Close
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment