Powershell – Purger les SIDHistory

Purger les SIDHistory des objet AD.

Permet de lister les utilisateurs, groupes et ordinateurs et de supprimer les attributs SIDHistory.

$LogFile= »c:\temp\SIDHistory_$(get-date -Format « yyyyMMddHHmmss »).csv »
$Res=@()

$Collection=Get-ADObject -LDAPFilter « (&(|(objectClass=group)(objectClass=user)(objectClass=computer))(sIDHistory=*)) » -Property objectClass, distinguishedname, samAccountName, objectSID, sIDHistory

foreach($objAD in $Collection){
for($i=0; $i -lt $objAD.sIDHistory.count; $i++){

$DataCollect = New-Object System.object
$DataCollect | Add-Member -name ‘objectClass’ -MemberType NoteProperty -Value $objAD.objectClass
$DataCollect | Add-Member -name ‘samAccountName’ -MemberType NoteProperty -Value $objAD.samAccountName
$DataCollect | Add-Member -name ‘objectSID’ -MemberType NoteProperty -Value $objAD.objectSID.value
$DataCollect | Add-Member -name ‘sIDHistory’ -MemberType NoteProperty -Value $objAD.sIDHistory[$i].Value
$DataCollect | Add-Member -name ‘DistinguishedName’ -MemberType NoteProperty -Value $objAD.DistinguishedName

$DataCollect | Add-Member -name ‘ActionType’ -MemberType NoteProperty -Value « Remove_SIDHistory »
Set-ADObject -Identity $objAD.DistinguishedName -Remove @{SIDHistory= $objAD.sIDHistory[$i].Value} #-WhatIf

$Res+=$DataCollect
}
}

$Res | Export-Csv $LogFile -Encoding UTF8 -Delimiter « ; »

Le fichier log permet le retour arrière, chaque SIDhistory supprimé est enregistré dans celui-ci.

Laisser un commentaire

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