ineichp
Goto Top

Passwort-Reset Batch für User in einer OU und direkt auch alles Unter-OU eingebunden

Hallo

Mein bestehender Batch sieht wiefolgt aus, er setzt alles Passwörter der User in der OU=abteilung01 zurück auf test-01.

Set objOU = GetObject("LDAP://ou=abteilung01,dc=firma,dc=ch")ObjOU.Filter = Array("user")WScript.Echo "Bei folgenden User Accounts wurde das Passwort auf test-01 zurueckgestellt:" & vbCrLF For Each objUser in objOU WScript.Echo objUser.sAMAccountName & " (" & Replace(objUser.Name, "CN=", "") & ")" objUser.SetPassword "test-01"Next

Soweit so gut...Zu meiner Frage / Zu meinem Problem:

In der OU=abteilung01 sind noch "Unter-OU" bez. andere Container (z.B. unterabteilung01). In diesen sind auch noch User.
Wie kann man den Batch so modifizieren das er alle alle User nimmt. Auch die, die in einem Unter-Container sind?

Danke für die Hilfe...

Content-ID: 113146

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

Ausgedruckt am: 22.11.2024 um 19:11 Uhr

bastla
bastla 03.04.2009 um 21:31:40 Uhr
Goto Top
Hallo ineichp und willkommen im Forum!

Ungetestet (aber auf Basis einer Lösung von Richard Mueller) etwa so:
Set objOU = GetObject("LDAP://ou=abteilung01,dc=firma,dc=ch")  

WScript.Echo "Bei folgenden User Accounts wurde das Passwort auf test-01 zurueckgestellt:" & vbCrLF  
EnumUsers(objOU)

Sub EnumUsers(objParent)
objParent.Filter = Array("user")  

For Each objUser In objParent
    WScript.Echo objUser.sAMAccountName & " (" & Replace(objUser.Name, "CN=", "") & ")"  
    objUser.SetPassword "test-01"  
Next

objParent.Filter = Array("organizationalUnit")  
For Each objChild In objParent
    EnumUsers(objChild)
Next
End Sub
Grüße
bastla

P.S.: Dein "Batch" wäre in meinem Sprachgebrauch ein "Script" ... face-wink
ineichp
ineichp 06.04.2009 um 09:50:28 Uhr
Goto Top
Hallo bastla

Super...Hat funktioniert. Danke vielmals...

Zu deinem P.S.:

In der Schweiz spricht man (Sprachgebaurch) meistens von einem Batch. Egal ob Skript oder effektiv ein Batch.

Gruss
Ineichp