Printout Header
RSS Feed

Active Direcory Domänencontroller suchen und finden


Wir benutzen für diese Suche das Active Directory Attribut userAccountControl, in dem bei Domänencontrollern das Bit UF_SERVER_TRUST_ACCOUNT (8192) gesetzt ist. Der SelfADSI-Artikel über LDAP Filter beschreibt genau, wie man nach einzelnen Flags in derartigen Bitfledern sucht. Zur allgemeinen Erläuterung von LDAP-Suchvorgängen lesen Sie das SelfADSI-Kapitel "LDAP Objekte im Verzeichnis suchen".


Alle Domänencontroller der eigenen Domäne finden


Dieses Script findet alle Active Directory Domänencontroller in der Domäne, in der der aktuell angemeldete Benutzer Mitglied ist:

ldapFilter = "(&(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=8192))" Set rootDSE = GetObject("LDAP://rootDSE") domainDN = rootDSE.Get("defaultNamingContext") Set ado = CreateObject("ADODB.Connection") ado.Provider = "ADSDSOObject" ado.Open "ADSearch" Set objectList = ado.Execute("<LDAP://" & domainDN & ">;" & ldapFilter & ";distinguishedName,dnsHostName;subtree") While Not objectList.EOF dcDN = objectList.Fields("distinguishedName") dcDNS = objectList.Fields("dnsHostName") WScript.Echo dcDNS & " " & dcDN objectList.MoveNext Wend

Alle Domänencontroller in irgendeiner Domäne/OU finden


Dieses Script findet alle Active Directory Domänencontroller in der angegebenen Domäne oder OU. Verwenden Sie hier den passenden LDAP Pfad für die von Ihnen gewünschten Domänen bzw. OU. Außerdem können Sie hier noch andere Anmeldedaten für den Suchvorgang (Benutzernamen und Passwort) angeben:

searchDN = "DC=example,DC=com" 'geben Sie hier einen eigenen Pfad zu einer Domäne oder OU an serverName = "192.168.0.66" 'geben Sie hier den Namen/die Adresse Ihres DCs an 'insert your own DC's name or address userName = InputBox("Enter user name","Credentials") 'Sie könnten den Benutzernamen auch direkt angeben, z.B. "EXAMPLE\userXYZ" password = InputBox("Enter password","Credentials") 'Sie könnten das PAsswort auch direkt angeben, z.B. "P@ssw0rd" ldapFilter = "(&(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=8192))" Set ado = CreateObject("ADODB.Connection") ado.Provider = "ADSDSOObject" ado.Properties("User ID") = userName ado.Properties("Password") = password ado.Properties("Encrypt Password") = True ado.Open "ADSearch" Set objectList = ado.Execute("<LDAP://" & serverName & "/" & searchDN & ">;" & ldapFilter & ";distinguishedName,dnsHostName;subtree") While Not objectList.EOF dcDN = objectList.Fields("distinguishedName") dcDNS = objectList.Fields("dnsHostName") WScript.Echo dcDNS & "  " & dcDN objectList.MoveNext Wend

Alle Domänencontroller im eigenen Forest finden


Dieses Script findet alle Domänencontroller in dem Active Directory Forest, in der der aktuell angemeldete Benutzer Mitglied ist. Bitte beachten, dass hier nur diejenigen Attribute durchsucht werden können, die auch im Global Catalog enthalten sind. Das betrifft den Aufbau des Suchfilters als auch die Liste der Attribute, die in der Suche angefordert werden:
ldapFilter = "(&(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=8192))" Set aoi = CreateObject("ADSystemInfo") 'die Forest Suchbasis ermitteln gcBase = aoi.ForestDNSName Set ado = CreateObject("ADODB.Connection") ado.Provider = "ADSDSOObject" ado.Open "ADSearch" Set objectList = ado.Execute("<GC://" & gcBase & ">;" & ldapFilter & ";distinguishedName,dnsHostName;subtree") While Not objectList.EOF dcDN = objectList.Fields("distinguishedName") dcDNS = objectList.Fields("dnsHostName") WScript.Echo dcDNS & " " & dcDN objectList.MoveNext Wend