Powershell – Set PasswordNeverExpires sur tous les comptes

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 !!!”
}
}

PICTO_AVERTISSEMENT

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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *