Passe tous les comptes d’une OU avec une valeur à ‘PasswordNeverExpires‘ définie.
Un premier script permet de modifier la valeur de l’attribut ‘PasswordNeverExpires ‘ à $true ou $false sur tous les compte d’une OU.
Ce même script log l’état de configuration des compte avant la modification de la valeur.
Import-Module ActiveDirectory
$LogFile=”c:\temp\UsersPWDNeverExpire_$(get-date -Format “yyyyMMddHHmmss”).csv”
$res=@()
$lstUsers=Get-ADUser -filter * -SearchBase “OU=Users,OU=Tests,DC=teddycorp,DC=lab” -Properties PasswordNeverExpires
foreach($user in $lstUsers){
$DataCollect = New-Object System.object
$DataCollect | Add-Member -name ‘UPN’ -MemberType NoteProperty -Value $User.UserPrincipalName
$DataCollect | Add-Member -name ‘SamAccountName’ -MemberType NoteProperty -Value $User.SamAccountName
$DataCollect | Add-Member -name ‘SID’ -MemberType NoteProperty -Value $User.SID
$DataCollect | Add-Member -name ‘DistinguishedName’ -MemberType NoteProperty -Value $User.DistinguishedName
$DataCollect | Add-Member -name ‘PasswordNeverExpiresInitialState’ -MemberType NoteProperty -Value $User.PasswordNeverExpires
Set-ADUser -Identity $User.DistinguishedName -PasswordNeverExpires $true
Get-ADUser -Identity $User.DistinguishedName -Properties PasswordNeverExpires | Select-Object UserPrincipalName,PasswordNeverExpires
$res+=$DataCollect
}
$res | Export-Csv -Path $LogFile -Delimiter “;” -NoTypeInformation -Encoding UTF8
Ce second script permet de revenir à l’état initial en reconfigurant les comptes utilisateurs à l’aide du fichier de log généré lors de l’exécution du script précedent.
$ImportFile=Import-Csv -Delimiter “;” -Path $LogFile -Encoding UTF8
foreach($user in $ImportFile){
Write-Host $user.DistinguishedName
if($User.PasswordNeverExpiresInitialState -eq “True”){
Set-ADUser -Identity $User.DistinguishedName -PasswordNeverExpires $true
}elseif($User.PasswordNeverExpiresInitialState -eq “False”){
Set-ADUser -Identity $User.DistinguishedName -PasswordNeverExpires $false
}else{
Write-Host “user: $User.DistinguishedName in error !!!”
}
}
Attention avec les double quotes dans les copier /coller des scriptes, wordpress les interprète. Avous de modifier avec caractère ” ou ” par une vraie double quotes.