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 e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *