The estimated reading time 2 minutes
Für eine Migration in eine neue Domäne war es erfoderlich, dass alle Benutzer das Passwort für eine gewisse Zeit nicht ändern müssen.
Ich habe mir dazu einen kleinen Powershell Befehl zusammengebaut um dies zu erreichen.
Vorab der Befehl lautet folgendermaßen und kann auf einem DC ausgeführt werden:
Get-ADUser -SearchBase "OU=DEMO,DC=demo01,DC=it-koehler,DC=com" -Filter "*" | where {$_.enabled -eq "true"} | Set-ADUser -PasswordNeverExpires:$true
Zum ersten Teil des Befehls:
Get-ADUser -SearchBase „OU=DEMO,DC=demo01,DC=it-koehler,DC=com“ -Filter „*“
Hier werden alle Benutzer in dieser und auch in darunterliegenden OUs ausgelesen.
Als SearchBase dient hier der Distinguished Name der OU welcher auch über die AD-Gui ausgelesen werden kann
Hinweis: sollte der Reiter nicht sichtbar sein, muss unter „Ansicht“ -> „Erweiterte Features“ aktiviert werden
Der Befehl kann dann einfach innerhalb der Powershell (wichtig: ADModul muss geladen sein, kann über den Servermanager gestartet werden) ausgeführt werden
nach dem Laden des Moduls (funktioniert automatisch) sollte der Befehl ausführbar sein
Es lässt sich erkennen, dass nun alle Benutzer ausgelesen wurden
Der Zweite Teil des Befehls:
| where {$_.enabled -eq „true“}
Mit dieser Erweiterung wird das Ergebnis nochmals gefiltert auf nur aktive Accounts (keine deaktivierte Accounts (User01 ist deaktiviert)-> kann aber auch weggelassen werden, da dies nur ein Beispiel ist
zum letzten Teil des Befehls
Um nun das Ergbnis (also alle zurückgelieferten Benutzer) anzupassen hänge ich den Set-ADUser Befehl an
| Set-ADUser -PasswordNeverExpires:$true
Um das vorab zu testen, lässt sich auch hinter dem Set-AD User noch ein -whatif anhängen. Die Ausgabe zeigt, dann die Objekte an, die geändert werden würden
Get-ADUser -SearchBase "OU=DEMO,DC=demo01,DC=it-koehler,DC=com" -Filter "*" | where {$_.enabled -eq "true"} | Set-ADUser -PasswordNeverExpires:$true -WhatIf
Um nun die Änderung durchzuführen einfach -whatif entfernen und bestätigen
Es wird dann keine Ausgabe gemacht, somit hat der Befehl funktioniert.
Selbstverständlich, lassen sich mit dieser Methode auch andere Optionen innerhalb des Benutzers setzen (z.B. alle Benutzer in einer OU müssen das Passwort bei der nächsten Anmeldung ändern = –ChangePasswordAtLogon:$true)
Auch das Gegenteil lässt sich machen (also alle Passwörter laufen aus) = Set-ADUser -PasswordNeverExpires:$false
Hier noch Link zu den Befehlsparamtern für Set-ADUser
https://technet.microsoft.com/de-de/library/ee617215.aspx
Viel Spaß beim Probieren.