xm-bit
Goto Top

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

Content-ID: 128726

Url: https://administrator.de/contentid/128726

Ausgedruckt am: 22.11.2024 um 01:11 Uhr

TsukiSan
TsukiSan 05.11.2009 um 15:34:36 Uhr
Goto Top
Hallo SasHW2k3,

nicht die oberste, sondern der kleinste Bereich.
OU bitte nicht hiermit verwechseln face-wink

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]
xm-bit
xm-bit 05.11.2009 um 16:45:15 Uhr
Goto Top
Hi,

ok das habe ich soweit, denke ich mal verstanden.

Wenn ich nun eine OU= test habe, in dieser OU liegt eine OU=test2.
In Test2 sind jetzt Gruppen oder Benutzer, die ich finden will.

wie trage ich das bei LDAP ein???

mfg
Sascha
bastla
bastla 05.11.2009 um 18:04:30 Uhr
Goto Top
@tsuki
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
bzw
WScript.Echo GetObject("LDAP://" & CreateObject("ADSystemInfo").UserName).ADSPath
@sashwk3
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
Ergänzen kannst Du das Ganze noch mit einem Filter:
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
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
xm-bit
xm-bit 05.11.2009 um 21:02:48 Uhr
Goto Top
Hi Bastla,

danke dir für deine Antwort. Das werd ich morgen gleich mal antesten.

Die Website schaue ich mir auch mal an, scheint ja gute Inhalte zu haben.

danke schön face-smile

mfg
Sascha
xm-bit
xm-bit 08.11.2009 um 22:33:31 Uhr
Goto Top
Hi Bastla,

da habe ich noch eine Frage:

Was stimmt hier nicht:

'##### Gruppenabhängige Laufwerke mappen

For Each prop In adsobj.groups

Select Case UCase(prop.name)

Case "Gruppenname"

Dieser Teil eine Scriptes funktioniert nicht.
Kannst du mir sagen, warum nicht???
Leider bin ich noch nicht so gut, es selber zu finden.. Daher frage ich dich.

mfg
Sascha
bastla
bastla 08.11.2009 um 22:51:46 Uhr
Goto Top
Hallo SasHWk3!

Wenn Du mit UCase() den Gruppennamen in Großbuchstaben umwandelst, musst Du dann konsequenter Weise auch mit "GRUPPENNAME" vergleichen ...

Grüße
bastla
Biber
Biber 08.11.2009 um 22:54:47 Uhr
Goto Top
Moin SasHW2k3,

wenn du mit UCase() einen Namen in Grossbuchstaben umwandelst, wird eine Prüfung auf "Gruppenname" scheitern, eine Prüfung auf "GRUPPENNAME" dagegen Chancen haben.

Grüße
Biber

[Edit] Ach, vergiss es einfach *gg [/Edit]
xm-bit
xm-bit 09.11.2009 um 10:41:51 Uhr
Goto Top
Hi,

@bastla
müssen die Gruppen im AD auch großgeschrieben sein??
Der Gruppenname", ist im Script auch großgeschrieben. Falls du das meinst.

@Biber
??? Verstehe ich nicht ganz.Meinst du in etwa das was bastla geschrieben hat??

mfg
Sascha
bastla
bastla 09.11.2009 um 11:46:37 Uhr
Goto Top
Hallo SasHWk3!
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 sollte
For Each prop In adsobj.groups
    Select Case UCase(prop.name)
    Case "GRUPPENNAME"  
funktionieren, während mit
Case "Gruppenname"
eine Übereinstimmung ausgeschlossen ist, da eben in "UCase(prop.name)" keine Kleinbuchstaben vorkommen können.

Grüße
bastla
xm-bit
xm-bit 09.11.2009 um 12:33:02 Uhr
Goto Top
Hi bastla,

leider funktioniert das nicht. Weder klein noch grossgeschrieben.

Ich habe das Problem mit der Abfrage des AD. Setze ich die OU in der sich die zu überprüfenden Gruppen befinden, direkt in die Domäne werden sie ausgelesen. Lasse die die OU aber unterhalb einer anderen OU, werden die Gruppen nicht gefunden.

Hab dazu auch nen Thread offen " Loginscript mit Gruppenabfrage".
mfg
Sascha
bastla
bastla 09.11.2009 um 13:03:46 Uhr
Goto Top
Hallo SasHW2k3!

Verwende anstelle von "prop.name" besser "prop.cn" ...

Grüße
bastla
xm-bit
xm-bit 09.11.2009 um 13:11:01 Uhr
Goto Top
hi bastla,

das kann ich tun.

Nach einem Test, werden die Laufwerke, die Gruppenbezogen sind, nicht mit gemapped...

mfg
Sascha
Biber
Biber 09.11.2009 um 18:51:40 Uhr
Goto Top
<OT>
Moin Sascha,

Zitat von @xm-bit:

@Biber
??? Verstehe ich nicht ganz.Meinst du in etwa das was bastla geschrieben hat??
Genau dasselbe.... nur viel, viel langsamer.
Ignorier meinen Kommentar einfach.

Grüße
Biber
</OT>