Jump to content

VBS - LDAP Query für andere Domäne basteln


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

 

ich habe folgendes Problem. Ich will mit VBS die User einer Domäne auslesen. Ich befinde mich auf einem Server in Domäne A. Mein Script liest erfolgreich alle User in Domäne A aus. Jetzt will ich vom gleichen Server die User der Domäne B auslesen. Doch das klappt mit leicht geändertem Code nicht.

 

Ich habe einen Forest, darin 2 Domänen. Die DCs der jeweiligen Domänen sind physikalisch erreichbar.

 

 

Hier der Code:

strDomain = "DC=AAA,DC=de"

strFilter = "(&(objectCategory=person)(objectClass=user)(name=*))"
strAttribs = "DistinguishedName"
strDepth ="subTree"

strQuery = "<LDAP://" & strDomain & ">;" & strFilter & ";" & strAttribs & ";" & strDepth

Set objcon = CreateObject("ADODB.Connection")
Set objcom = CreateObject("ADODB.Command")
objcon.Provider = "ADsDSOObject"
objcon.Open "Active Directory Provider"

Set objcom.ActiveConnection = objcon

objcom.CommandText = strQuery

Set objRS = objcom.Execute


Do Until objRS.EOF

  strDN = rs("DistinguishedName")

  MsgBox strDN

Loop

 

Wie gesagt es klappt auf Server in Domäne A, mit auslesen der Domäne A. Vom gleichen Server will ich nun Domäne B auslesen. Dazu ändere ich die Varialbe strDomain in = "DC=BBB,DC=de". Das Script läuft ohne Fehler durch aber es werden keine User aufgelistet.

 

Was mache ich falsch?

 

Danke im voraus.

Link zu diesem Kommentar

Hallo,

 

strQuery = "<LDAP://" & strDomain & ">;" & strFilter & ";" & strAttribs & ";" & strDepth

 

 

gib mal statt der Domain die IP und den Port des DCs (am besten dem PDCe) ein:

LDAP://<IP>:389/<Pfad>

 

Eventuell auch mit Credentials, wenn diese nicht gleich sind

LDAP://<IP>:389/<Pfad>,<username>,<password>

 

Wenns dann nicht funktioniert, würde ich mit dem Wireshark am PDCe nachsehen, was wirklich dort ankommt.

Link zu diesem Kommentar

Merci, die Verwendung des Ports und IP funktionieren tadelos. Habe jetzt auch nochmal rumprobiert und anstatt "LDAP://DC=AAA,DC=de" mal einfach "LDAP://AAA.de" versucht, und siehe da das klappt?! Kann es mir nicht erklären weil das RootDSE den Wert DC=AAA,DC=de zurück gibt, aber es funktioniert und das ist die Hauptsache...

 

Grüße

Link zu diesem Kommentar

Hey,

 

dein ursprünglicher Fehler trat auf, da Du einen so genannten "serverless LDAP Bind" durchgeführt hast, also das hier:

 

strQuery = "<LDAP://DC=AAA,DC=de>;" ... usw

 

Das klappt aber nur in der eigenen Domäne. Wenn man an eine fremde Domäne ran will, dann muss man stets eine Netzwerkadresse eines dortigen Domänencontrollers nehmen, in deinem Fall also eines von diesen hier:

 

strQuery = "<LDAP://dc1.aaa.de/DC=AAA,DC=de>;" ... usw

oder

strQuery = "<LDAP://192.168.1.1/DC=AAA,DC=de>;" ... usw

oder

strQuery = "<LDAP://aaa.de/DC=AAA,DC=de>;" ... usw

 

Das letzte Beispiel (dDomänenname AAA.de wird in eine IP-Adresse eines DCs aufgelöst) klappt nur, wenn das DNS dieser Domäne korrekt aufgesetzt ist. Das hat also mit Kerberos nix zu tun.

 

Das ":389" kannst Du bei AD stets weglassen, AD-Domänencontroller antworten IMMER auf Port 389, wenns um LDAP geht, falls du zum Global Catalog willst, dann verwende hier das

 

strQuery = "<LDAP://dc1.aaa.de:3268/DC=AAA,DC=de>;" ... usw

 

 

Alles was du brauchst, wird hier detailliert beschrieben:

 

SelfADSI : LDAP-Pfadnamen und Distinguished Names

SelfADSI : LDAP Objekte im Verzeichnis suchen mit ADO

 

Und hier noch ein komplettes Beispiel für die Suche in anderen Domänen/Forests, du mußt nur den LDAP-Filter abändern, denn es werden dort Domänencontroller gesucht. Abschnitt heißt "Alle Domänencontroller in irgendeiner Domäne/OU finden":

 

SelfADSI : Active Direcory Domänencontroller suchen und finden

 

Gruß,

Philipp

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...