Created
October 19, 2015 19:32
-
-
Save Clijsters/42bb388abf6d32e4fc67 to your computer and use it in GitHub Desktop.
Simple LDAP Query for cscript
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'================ | |
'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