Jump to content

userpasserwoerter per batchdatei aendern?


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

Empfohlene Beiträge

du kannst im userprofil im active directory bei den usern den checker bei "user muss das passwort bei der nächsten anmeldung ändern" aktivieren. dann kommt beim nächsten anmeldevorgang die maske mit der änderungsaufforderung.

 

dies kann mit einer passwortrichtlinie (die letzten X passwörter dürfen nicht verwendet werden usw...) kombiniert werden.

 

mfg

hannes

Link zu diesem Kommentar
du kannst im userprofil im active directory bei den usern den checker bei "user muss das passwort bei der nächsten anmeldung ändern" aktivieren. dann kommt beim nächsten anmeldevorgang die maske mit der änderungsaufforderung.

 

erstmal danke fuer die schnelle antwort.

 

das problem ist:

ich muss das passwort bestimmen.

die pc sind in einem schulungsraum.

nach jeder schulung soll ich die passwoerter anpassen bzw. abaendern.

( frage mich nicht warum... )

 

deshalb habe ich mir gedacht, ich lass die passwoerter der user per batch-script aendern.

 

geht das?

oder muss ich jeden user einzeln das passwort aendern.

 

danke

Link zu diesem Kommentar

DSQUERY USER OU=SCHUELER,DC=SCHULE,DC=LOCAL|DSMOD USER -PWD !Kennwort!

 

soweit ist es klar.

das problem ist:

user1 - passwort1

user2 - passwort2

....

 

d.h. jeder schueler hat ein anderes passwort.

desshalb will ich die passwoerter in einer datei speichern.

z.b: passwortdatei.txt

user1 - passwort1

...

 

und das "script" liest die user + passwoerter aud der datei

so muss ich das naechstemal "nur" die passwoerter anpassen...

und nicht alle user im ad einzeln aendern.

 

geht das - hat mir jemand einen beriff, nachdem ich suchen kann

 

danke

Link zu diesem Kommentar

Hey sam600

 

versuch doch mal vbscript

 

strcontainer = "ou=user,ou=managed"  'OU in der die User sind
'***********************************************
'*         Connect to a container              *
'***********************************************
Set objRootDSE = GetObject("LDAP://rootDSE")
If strContainer = "" Then
 Set objContainer = GetObject("LDAP://" & _
   objRootDSE.Get("defaultNamingContext"))
Else
 Set objContainer = GetObject("LDAP://" & strContainer & "," & _
   objRootDSE.Get("defaultNamingContext"))
End If
'***********************************************
'*       End connect to a container            *
'***********************************************
for each objuser in objcontainer
arrfinduser = finduser(objuser.samaccountname)
if arrfinduser(0) <> "" then
objUser.SetPassword arrfinduser(1)
End If
Next
Wscript.echo "Fertig :-)"

Function finduser(user)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("user.txt", 1) 'Text Datei getrennt mit ;
Do While objTextFile.AtEndOfStream <> True
 strLine = objtextFile.ReadLine    
 arruser = split(strline, ";")
 if arruser(0) = user then
 finduser = arruser
 exit function
 End if    
Loop
 finduser = array ("","")
End function

 

hab ich grade mal zusammengeschrieben.

Ist mit sicherheit schönder zu gestalten aber sollte funktionieren.

Der Code ändert das PW bei den Usern die in der Liste sind. Der rest bleibt unberührt.

Vorraussetzung auch hier, das die User alle in einer OU sind. Sollte das nicht der Fall sein, sag nochmal bescheid, da find ich bestimmt auch noch ne Lösung :cool:

 

Gruß

 

Danny

Link zu diesem Kommentar

Der Code ändert das PW bei den Usern die in der Liste sind. Der rest bleibt unberührt.

Vorraussetzung auch hier, das die User alle in einer OU sind. Sollte das nicht der Fall sein, sag nochmal bescheid, da find ich bestimmt auch noch ne Lösung :cool:

 

hallo Danny

 

erstmal vielen vielen dank fuer deine ( bzw. fuer eure ) hilfe!!!

 

die user sind in unterschiedlichen OU ( dozent1, dozent2, ... ).

 

wie muss die text datei aufgebaut sein?

 

vorab danke

Link zu diesem Kommentar

So.. da hab ich auch noch was für dich, wenn die User in unterschiedlichen OUs sind.

Textdatei user.txt ist im format

User1;pass1

User2;Pass2

musst nur noch in der ersten Zeile den basestr an deine umgebung anpassen.

basestr = "dc=domäne,dc=local"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("user.txt", 1) 'Text Datei getrennt mit ;
Do While objTextFile.AtEndOfStream <> True
 strLine = objtextFile.ReadLine    
 arruser = split(strline, ";") 
 strusercn = getusercn(arruser(0),basestr)
 if strusercn <> "" then
 changepw strusercn,arruser(1)
 End If
Loop
Wscript.echo "Fertig :-)"

Function changepw(usercn,strpw)
Set objuser = GetObject(usercn)
objUser.SetPassword strpw
End function

Function getuserCN(struser,basestr)
Const ADS_SCOPE_SUBTREE = 2
filterStr = "(&(objectclass=user)(samaccountname=" & struser & "))"
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCOmmand.ActiveConnection = objConnection
objCommand.CommandText = _
   "<LDAP://" & baseStr & ">;" & filterStr & ";ADsPath;subtree"
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
Set objRecordSet = objCommand.Execute
On Error Resume Next
objRecordSet.MoveFirst
if err.number = 3021 then 
wscript.echo "Datensatz " & struser & " nicht gefunden" 
Exit Function
End If
Do Until objRecordSet.EOF
   getuserCN = objRecordSet.Fields(0)
   objRecordSet.MoveNext
Loop
End Function

 

viel spaß

 

Gruß

 

Danny

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...