Das folgende PowerShell-Skript dient dazu, die Passwörter automatisch in bestimmten Abständen zurückzusetzen. Auch ADSelfService Plus bietet eine Option zum automatischen Zurücksetzen von Domänenpasswörtern, wenn diese ablaufen. Bei aktivierter Option wird in regelmäßigen Abständen ein Planer ausgeführt, der Benutzerkonten mit abgelaufenen Passwörtern sucht und diese automatisch zurücksetzt. Das neue Passwort wird dann per E-Mail an den Benutzer gesendet. Hier ein Vergleich zwischen der automatischen Passwortzurücksetzung mit PowerShell oder mit ADSelfService Plus:
Param ( [Parameter(Mandatory=$True)] [String]$InputFile ) Function MakeRandomPass { Param ( [Int]$PLength ) If ($PLength -LT 4) {Return $Null} $Numbers = $Null For ($A=48;$A -LE 57;$A++) {$Numbers+=,[Char][Byte]$A} $UpCase = $Null For ($A=65;$A -LE 90;$A++) {$UpCase+=,[Char][Byte]$A} $LowCase = $Null For ($A=97;$A -LE 122;$A++) {$LowCase+=,[Char][Byte]$A} $SpChar = $Null For ($A=33;$A -LE 47;$A++) {$SpChar+=,[Char][Byte]$A} For ($A=58;$A -LE 64;$A++) {$SpChar+=,[Char][Byte]$A} For ($A=123;$A -LE 126;$A++) {$SpChar+=,[Char][Byte]$A} $Buffer = @() For ($A=1;$A -LE $PLength;$A++) {$Buffer+=0} While ($True) { $NumChar = (Get-Random -Minimum 0 -Maximum $PLength) If ($Buffer[$NumChar] -EQ 0) {$Buffer[$NumChar] = 1; break} } While ($True) { $NumChar = (Get-Random -Minimum 0 -Maximum $PLength) If ($Buffer[$NumChar] -EQ 0) {$Buffer[$NumChar] = 2; break} } While ($True) { $NumChar = (Get-Random -Minimum 0 -Maximum $PLength) If ($Buffer[$NumChar] -EQ 0) {$Buffer[$NumChar] = 3; break} } While ($True) { $NumChar = (Get-Random -Minimum 0 -Maximum $PLength) If ($Buffer[$NumChar] -EQ 0) {$Buffer[$NumChar] = 4; break} } $ThisPassword = $Null ForEach ($CharType In $Buffer) { If ($CharType -EQ 0) { $CharType = ((1,2,3,4) | Get-Random) } Switch ($CharType) { 1 {$ThisPassword+=($Numbers | Get-Random)} 2 {$ThisPassword+=($UpCase | Get-Random)} 3 {$ThisPassword+=($LowCase | Get-Random)} 4 {$ThisPassword+=($SpChar | Get-Random)} } } Return $ThisPassword } $ErrorActionPreference = "SilentlyContinue" $T = Get-Date If ($Error) {$Error.Clear()} Write-Host "`n" Write-Host "Working. Please wait" Write-Host "`n" $RepFile = $T -Replace " ", $Null $RepFile = $RepFile -Replace ":", $Null $RepFile = $RepFile -Replace "/", $Null $RepFile = $RepFile -Replace "-", $Null If (Test-Path "Report_$RepFile.txt") { Remove-Item "Report_$RepFile.txt" } New-Item -Path "Report_$RepFile.txt" -Type File -Force -Value "REPORT: Reset Local User Account Password On Multiple Computers" | Out-Null Add-Content "Report_$RepFile.txt" "`n" Add-Content "Report_$RepFile.txt" "`n" Add-Content "Report_$RepFile.txt" "Report Created On $T" Add-Content "Report_$RepFile.txt" Add-Content "Report_$RepFile.txt" "`n" Import-CSV -Path $InputFile | ForEach-Object { Try { $ThisMachine = $_.ComputerName $ThisAccount = $_.LocalAccountLoginID If (!([string]::IsNullOrEmpty($ThisMachine)) -AND !([string]::IsNullOrEmpty($ThisAccount))) { Write-Host "`tAttempting to reset the local account password in computer: $ThisMachine" -ForeGroundColor "Yellow" $PassToSet = MakeRandomPass 20 $ThisUser = [ADSI]"WinNT://$ThisMachine/$ThisAccount, User" $ThisUser.SetPassword($PassToSet) $ThisUser.SetInfo() If (!$Error) { Add-Content "Report_$RepFile.txt" "$ThisMachine `t`t -- $ThisAccount `t`t -- $PassToSet `t`t --success: Password Has Been Reset/Changed." } } } Catch { [System.Exception] | Out-Null If ($Error) { Add-Content "Report_$RepFile.txt" "$ThisMachine `t`t -- $ThisAccount `t`t -- Password Reset has failed. An Error Has Occurred." Add-Content "Report_$RepFile.txt" $Error $Error.Clear() } } } Write-Host "`n" Write-Host "Task Completed. Check Report File: Report_$RepFile.txt" Notepad "Report_$RepFile.txt" Write-Host "`n"
In ADSelfService Plus benötigen Sie zum Aktivieren der automatischen Passwortzurücksetzung nur wenige Klicks und müssen minimale Informationen angeben. In PowerShell müssen zunächst Skripte geschrieben, auf Fehler geprüft und dann ausgeführt werden.
Beim Erstellen einer ADSelfService-Plus-Richtlinie können Admins die Domäne, OEs und Gruppen auswählen, deren Benutzerpasswörter beim Ablauf automatisch zurückgesetzt werden können. Um die Passwortzurücksetzung für bestimmte Benutzer zu automatisieren, müssten Sie in PowerShell ein umfangreiches Skript schreiben
Die Erzwingung von Passwortrichtlinien in ADSelfService Plus ermöglicht es Admins, spezifische Passwortrichtlinien zu erstellen, damit keine schwachen Passwörter verwendet werden können. Das automatische Generieren von Passwörtern kann auf Wunsch nach dieser spezifischen Richtlinie erfolgen.
Wenn Sie die Passwortsynchronisierung in ADSelfService Plus aktivieren, werden neue Passwörter automatisch mit Benutzerkonten in Unternehmensanwendungen synchronisiert (wie G Suite und Salesforce).
Erfasst alle (auch automatisierte) Operationen zum Zurücksetzen von Passwörtern in Berichten, die Sie ganz einfach mit nur einem Klick erstellen und in verschiedenen Formaten wie HTML, CSV, PDF und XLS exportieren können.
Administratoren erhalten regelmäßig einen zusammengefassten Bericht mit Details zu allen Passwortzurücksetzungen.