Le script PowerShell ci-dessous peut être utilisé pour réinitialiser automatiquement les mots de passe à intervalles réguliers. ADSelfService Plus offre également une option qui peut être utilisée pour réinitialiser automatiquement les mots de passe des utilisateurs du domaine lorsqu'ils expirent. Si cette option est activée, un planificateur s'exécute à intervalles réguliers pour rechercher les comptes utilisateurs dont le mot de passe a expiré et réinitialise automatiquement les mots de passe. Le nouveau mot de passe est ensuite envoyé par e-mail à l'utilisateur. Voici une comparaison entre la réinitialisation automatique du mot de passe à l'aide de PowerShell et 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"Avec ADSelfService Plus, la réinitialisation automatique du mot de passe peut être activée en quelques clics et en saisissant un minimum d'informations. Dans PowerShell, cela nécessite la création, le débogage et l'exécution de scripts.
Lors de la création d'une stratégie ADSelfService, les administrateurs peuvent sélectionner le domaine, les UO et les groupes dont les utilisateurs peuvent voir leurs mots de passe automatiquement réinitialisés à leur expiration. L'utilisation de PowerShell pour automatiser la réinitialisation des mots de passe pour des utilisateurs spécifiques nécessite la création d'un script complet
Avec ADSelfService Plus et son Password Policy Enforcer, les administrateurs peuvent créer et appliquer des stratégies de mot de passe personnalisées qui empêchent la création de mots de passe faibles. Les mots de passe générés automatiquement peuvent être choisis pour être conformes à cette stratégie de mot de passe personnalisée.
L’option de Synchronisation du mot de passe d’ADSelfService Plus, lorsqu'elle est activée, permet de synchroniser automatiquement le nouveau mot de passe avec les comptes de l'utilisateur dans les applications d'entreprise comme G Suite et Salesforce.
Capture toutes les opérations de réinitialisation de mot de passe, y compris les réinitialisations automatisées de mot de passe dans des rapports qui peuvent être facilement générés d'un simple clic et exportés dans différents formats tels que HTML, CSV, PDF ou XLS.
Les administrateurs reçoivent périodiquement un rapport consolidé contenant les détails de toutes les opérations de réinitialisation de mot de passe.
Réinitialisez automatiquement les mots de passe des utilisateurs d'Active Directory.
Obtenez un essai gratuit de 30 jours