Приведенный ниже сценарий PowerShell можно использовать для автоматического сброса паролей через регулярные промежутки времени. ADSelfService Plus также предлагает функцию, которую можно использовать для автоматического сброса паролей пользователей домена по истечении срока их действия. Если эта функция включена, планировщик запускается через регулярные интервалы времени для поиска учетных записей пользователей с истекшим сроком действия паролей и автоматически сбрасывает пароли. Затем всем пользователям отправляются новые пароли. Ниже приведено сравнение автоматического сброса пароля с помощью PowerShell и ADSelfService Plus:
| PowerShell | 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" |
В ADSelfService Plus:
|
С помощью ADSelfService Plus можно включить автоматический сброс пароля несколькими щелчками мышью и ввести минимум информации. В PowerShell для этого требуется создание, отладка и запуск скриптов.
При создании политики ADSelfService администраторы могут выбрать домен, подразделения и группы в организации, пароли пользователей которых могут быть автоматически сброшены по истечении срока действия. Использование PowerShell для автоматизации сброса паролей определенных пользователей потребует создания обширного сценария и управления им
Средство принудительного применения политики паролей ADSelfService Plus позволяет администраторам создавать и применять настраиваемые политики паролей, которые препятствуют созданию ненадежных паролей. В соответствии с этой настраиваемой политикой паролей можно выбирать пароли, сгенерированные автоматически.
Функция синхронизации паролей ADSelfService Plus при включении автоматически синхронизирует новый пароль с учетными записями пользователя в корпоративных приложениях, таких как G Suite и Salesforce.
Все операции по сбросу паролей, включая автоматические сбросы паролей, фиксируются в отчетах, которые можно с легкостью создать одним щелчком мыши и экспортировать в различные форматы, такие как HTML, CSV, PDF и XLS.
Администраторам периодически отправляется сводный отчет, содержащий подробную информацию обо всех операциях по сбросу паролей.