joml
Goto Top

Für mehrere User im AD die Passwörter zurücksetzten

Hallo zusammen,

Folgendes Problem:
Ich sollte für mehrere User das Passwort im AD zurücksetzten.
Alle User sollen am Schluss das gleiche Passwort haben. Die User befinden sich in einer spez AU.

Frage:
Wie kann ich im AD für mehrer User das Passwort zurücksetzten OHNE das ich sie mir einzeln vornehmen muss?
Gibts da Möglichkeiten per Script, Tools etc..?

Vielen Dank

Gruss
JOML

Content-Key: 72586

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

Printed on: April 20, 2024 at 14:04 o'clock

Member: bastla
bastla Nov 02, 2007 at 18:11:37 (UTC)
Goto Top
Hallo JOML2005!

Dafür sollte folgendes VBScript (Vorlage ausgeborgt bei MS themselves) reichen:
Set objOU = GetObject _
    ("LDAP://ou=PWTest,dc=firma,dc=local")  
ObjOU.Filter = Array("user")  
For Each objUser in objOU
	objUser.SetPassword "i5A2sj*!"  
Next

Grüße
bastla
Member: JOML
JOML Nov 03, 2007 at 11:09:40 (UTC)
Goto Top
Hi bastla,

Vielen Dank... so in der Art habe ich mir das vorgestellt. face-smile

Nur.. leider habe ich (noch) sehr wenig Erfahrung in Sachen VBScripting.
Kann ich das so Einsetzten, wie's da steht (natürlich an unsere AD Struktur angepasst), oder muss voher oder nacher noch was im Script stehen...?

Super wäre natürlich eine visuelle Ausgabe wie z.B:
"Für folgende User wurde das Passwort zurückgestellt:
user1
user2
user3
etc.

Ich kann mir vorstellen, dass das noch relativ einfach wäre.... wenn man weiss wie. Aber eben.. da habe ich halt noch meine Probleme... und die Zeit läuft mir davon um so eine Lösung zu implementieren.


Vielen Dank nochmals

Gruss
JOML
Member: bastla
bastla Nov 03, 2007 at 12:23:46 (UTC)
Goto Top
Hallo JOML2005!

Kann ich das so Einsetzten, wie's da steht (natürlich an unsere AD Struktur angepasst), oder muss voher oder nacher noch was im Script stehen...?
Mehr braucht's eigentlich nicht, sorry ... face-wink

Um allerdings die von Dir gewünschte Ausgabe zu erzeugen, müsste das Script doch um 2 Zeilen erweitert werden:
Set objOU = GetObject _
    ("LDAP://ou=PWTest,dc=firma,dc=local")  
ObjOU.Filter = Array("user")  
WScript.Echo "Fuer folgende User wurde das Passwort zurueckgestellt:" & vbCrLF  
For Each objUser in objOU
	WScript.Echo objUser.sAMAccountName & " (" & Replace(objUser.Name, "CN=", "") & ")"  
	objUser.SetPassword "i5A2sj*!"  
Next

Wenn Du das Script als "C:\Scripts\ResetPW4OU.vbs" speicherst, kannst Du es von der Kommandozeile mit
cscript //nologo C:\Scripts\ResetPW4OU.vbs
starten und erhältst die Ausgabe im CMD-Fenster, oder analog mit
cscript //nologo C:\Scripts\ResetPW4OU.vbs > D:\ResetPW4OU.txt
ein Logfile.

Grüße
bastla
Member: JOML
JOML Nov 03, 2007 at 15:00:38 (UTC)
Goto Top
WOW.. das ging aber schnell face-smile

Vielen Dank... werde es am Montag gleich mal versuchen...

Nice weekend

JOML
Member: JOML
JOML Nov 05, 2007 at 09:38:17 (UTC)
Goto Top
Hallo bastla,

Irgendwie scheint das nicht so zu funktionieren.
das CMD Fenster geht ganz kurz auf und wieder zu... und das Passwort wird nicht zurückgestellt und auch die Auflistung funktioniert nicht.

Aufgerufen wirds mit:
cscript //nologo C:\Scripts\test.vbs

Set objOU = GetObject _
    ("LDAP://ou=UsersGeneric,ou=Test,ou=IT,ou=AdminUnits,dc=YYYY,dc=XXXX,dc=com")  
ObjOU.Filter = Array("user")  
WScript.Echo "Fuer folgende User Accounts wurde das Passwort zurueckgestellt:" & vbCrLF  
For Each objUser in objOU
	WScript.Echo objUser.sAMAccountName & " (" & Replace(objUser.Name, "CN=", "") & ")"  
	objUser.SetPassword "TesT2007"  
Next

Ist da noch irgedwo ein Fehler drin...?

Vielen Dank für die Hilfe
JOML
Member: bastla
bastla Nov 05, 2007 at 11:10:44 (UTC)
Goto Top
Hallo JOML2005!

Das CMD Fenster geht ganz kurz auf und wieder zu...
Die Idee ist es eigentlich, zunächst über "Start / Ausführen... / cmd" ein CMD-Fenster zu öffnen und von der Kommandozeile aus das Script, wie beschrieben, mit
cscript //nologo C:\Scripts\test.vbs
zu starten.

Ist da noch irgedwo ein Fehler drin...?
Das lässt sich leichter erkennen, wenn Du < code>-Tags (ohne Leerzeichen) verwendest ...
Set objOU = GetObject _
("LDAP://ou=UsersGeneric,ou=Test,ou=IT,ou=AdminUnits,dc=YYYY,dc=XXXX,dc=com")  
objOU.Filter = Array("user")  
WScript.Echo "Fuer folgende User Accounts wurde das Passwort zurueckgestellt:" & vbCrLF  
For Each objUser in objOU
 	WScript.Echo objUser.sAMAccountName & " (" & Replace(objUser.Name, "CN=", "") & ")"  
 	objUser.SetPassword "TesT2007"  
Next
Ob Dein LDAP-Pfad stimmt (zB Sub-Domain "YYYY"), musst Du natürlich selbst überprüfen, ansonsten sieht syntaktisch alles OK aus und läuft (natürlich mit meinen Domäneneinstellungen) hier auch.

Grüße
bastla
Member: JOML
JOML Nov 05, 2007 at 11:11:08 (UTC)
Goto Top
Ist da noch irgedwo ein Fehler drin...?


Sorry... war mein Fehler.
So ein typischer Montagmorgenschreibfehler. Hatte im Script eine falsche OU drin.
Jetzt gehts...

Danke nochmals...

Gruss
JOML
Member: Biber
Biber Nov 05, 2007 at 14:08:53 (UTC)
Goto Top
@joml2005
Ist da noch irgedwo ein Fehler drin...?
Diese Frage (am besten mit treuherzigem Wimpernschlag) liebe ich auch bei meinen Kunden.
Es sind schon Fragende aus geringerem Anlass gevierteilt worden.

Aber egal, der Beitrag ist hervorragend gelöst worden und ich schliesse ihn jetzt guten Gewissens.

Grüße
Biber