Abfrage im AD
Hi,
ich möchte Abfragen im Ad machen können.
Das alles auf einem Dc Server 2008.
Nur ist mir nicht ganz klar, wie ich das anstellen soll.
Hi,
ich habe folgenden String:
Set objUser = GetObject("LDAP:" & objADSysInfo.UserName)
Was genau wird bei "LDAP:" durchsucht, nur die oberste Ebene???
Wenn ich jetzt, eine bestimmte OU durchsuchen will, wie gebe ich das genau an???
Könnt ihr mir da helfen???
mfg
Sascha
ich möchte Abfragen im Ad machen können.
Das alles auf einem Dc Server 2008.
Nur ist mir nicht ganz klar, wie ich das anstellen soll.
Hi,
ich habe folgenden String:
Set objUser = GetObject("LDAP:" & objADSysInfo.UserName)
Was genau wird bei "LDAP:" durchsucht, nur die oberste Ebene???
Wenn ich jetzt, eine bestimmte OU durchsuchen will, wie gebe ich das genau an???
Könnt ihr mir da helfen???
mfg
Sascha
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 128726
Url: https://administrator.de/contentid/128726
Ausgedruckt am: 22.11.2024 um 01:11 Uhr
13 Kommentare
Neuester Kommentar
Hallo SasHW2k3,
nicht die oberste, sondern der kleinste Bereich.
OU bitte nicht hiermit verwechseln
Gruss
Tsuki
[Edit]
Beispiel, wie man für die Gruppe "Sales" ein paar Infos abfragt:
[/Edit]
nicht die oberste, sondern der kleinste Bereich.
OU bitte nicht hiermit verwechseln
Gruss
Tsuki
[Edit]
Beispiel, wie man für die Gruppe "Sales" ein paar Infos abfragt:
Set objContainer = GetObject _
("GC://ou=Sales,dc=NA,dc=fabrikam,dc=com")
strWhenCreated = objContainer.Get("whenCreated")
strWhenChanged = objContainer.Get("whenChanged")
Set objUSNChanged = objContainer.Get("uSNChanged")
dblUSNChanged = _
Abs(objUSNChanged.HighPart * 2^32 + objUSNChanged.LowPart)
Set objUSNCreated = objContainer.Get("uSNCreated")
dblUSNCreated = _
Abs(objUSNCreated.HighPart * 2^32 + objUSNCreated.LowPart)
objContainer.GetInfoEx Array("canonicalName"), 0
arrCanonicalName = objContainer.GetEx("canonicalName")
WScript.Echo "CanonicalName of object:"
For Each strValue in arrCanonicalName
WScript.Echo vbTab & strValue
Next
WScript.Echo
WScript.Echo "Object class: " & objContainer.Class & vbCrLf
WScript.Echo "whenCreated: " & strWhenCreated & " (Created - GMT)"
WScript.Echo "whenChanged: " & strWhenChanged & " (Modified - GMT)"
WScript.Echo VbCrLf
WScript.Echo "uSNChanged: " & dblUSNChanged & " (USN Current)"
WScript.Echo "uSNCreated: " & dblUSNCreated & " (USN Original)"
[/Edit]
@tsuki
bzw
@sashwk3
Ergänzen kannst Du das Ganze noch mit einem Filter:
Filtern kannst Du natürlich auch nach "Group" oder "OrganizationalUnit".
Übrigens sind in solchen oder ähnlichen ("How Can I List All the Sub-OUs in an OU?") Fällen die "Scripting Guy"-Artikel sehr empfehlenswert ...
Grüße
bastla
nicht die oberste, sondern der kleinste Bereich.
So klein ist der Bereich in diesem Fall gar nicht (es wird schließlich der gesamte ADS-Pfad zurückgegeben):WScript.Echo CreateObject("ADSystemInfo").UserName
WScript.Echo GetObject("LDAP://" & CreateObject("ADSystemInfo").UserName).ADSPath
In Test2 sind jetzt Gruppen oder Benutzer, die ich finden will.
ZB so:For Each Obj In GetObject("LDAP://OU=test2,OU=test,DC=firma,DC=local")
WScript.Echo Obj.Name
Next
Set OU = GetObject("LDAP://OU=test2,OU=test,DC=firma,DC=local")
OU.Filter = Array("User")
For Each User In OU
WScript.Echo User.Name
Next
Übrigens sind in solchen oder ähnlichen ("How Can I List All the Sub-OUs in an OU?") Fällen die "Scripting Guy"-Artikel sehr empfehlenswert ...
Grüße
bastla
Hallo SasHWk3!
funktionieren, während mit
eine Übereinstimmung ausgeschlossen ist, da eben in "
Grüße
bastla
müssen die Gruppen im AD auch großgeschrieben sein??
Die "Original"-Schreibweise ist egal, wenn Du mit der "UpperCase"-Funktion im Script den ausgelesenen Name in Großbuchstaben umwandelst - daher sollteFor Each prop In adsobj.groups
Select Case UCase(prop.name)
Case "GRUPPENNAME"
Case "Gruppenname"
UCase(prop.name)
" keine Kleinbuchstaben vorkommen können.Grüße
bastla