Comment purger la corbeille Active Directory ?
I. Présentation
La corbeille Active Directory est une fonctionnalité présente sous Windows Server depuis Windows Server 2008 R2. Elle est désormais activée par défaut alors qu'auparavant il était nécessaire de l'activer manuellement.
La corbeille Active Directory, au même titre que la corbeille de Windows, permet de récupérer des éléments supprimés, notamment des objets ordinateurs, utilisateurs ou des groupes.
Dans ce tutoriel, je vais vous expliquer comment purger la corbeille AD pour supprimer définitivement les éléments qui s'y trouvent. Cela va permettre d'effacer définitivement toutes les traces au sujet d'un compte utilisateur ou d'un compte ordinateur, par exemple.
Cette manipulation s'effectue en PowerShell ?, directement depuis un contrôleur de domaine ou à distance.
II. Purger la corbeille
Nous allons utiliser le cmdlet "Get-ADObject" pour récupérer les objets supprimés, notamment grâce à deux critères : l'attribut isDeleted égal à vrai (true) et la présence de "DEL:" dans le nom de l'objet. Il faut également penser à inclure le paramètre -IncludeDeletedObjects pour que la commande retourne aussi les objets supprimés, ce qui peut nous intéresse fortement...
Voici la commande permettant de visualiser l'ensemble des éléments supprimés. Autrement dit, cela permet de voir le contenu de la corbeille Active Directory.
Get-ADObject -Filter 'isDeleted -eq $true -and Name -like "*DEL:*"' -IncludeDeletedObjects
Maintenant, si l'on veut visualiser seulement les objets ordinateurs présents dans la corbeille, on va ajouter un filtre basé sur la classe de l'objet. Pour les ordinateurs, il faudra ajouter la condition suivante : -and ObjectClass -eq "computer"
Ce qui donne la commande complète ci-dessous :
Get-ADObject -Filter 'isDeleted -eq $true -and Name -like "*DEL:*" -and ObjectClass -eq "computer"' -IncludeDeletedObjects
Pour les utilisateurs, le principe est le même, sauf que l'on remplace "computer" par "user". Ce qui donne :
Get-ADObject -Filter 'isDeleted -eq $true -and Name -like "*DEL:*" -and ObjectClass -eq "user"' -IncludeDeletedObjects
Enfin, pour supprimer les objets de la corbeille Active Directory, par exemple tous les utilisateurs ou tous les utilisateurs, il faudra coupler Get-ADObject avec Remove-ADObject. La première commande va envoyer son résultat à la seconde grâce au pipeline, et la seconde commande va supprimer les objets.
Voici la commande complète pour supprimer les ordinateurs de la corbeille :
Get-ADObject -Filter 'isDeleted -eq $true -and Name -like "*DEL:*" -and ObjectClass -eq "computer"' -IncludeDeletedObjects | Remove-ADObject -Confirm:$false
Les utilisateurs et les autres objets dans la corbeille ne seront pas altérés par cette commande. Pour vider toute la corbeille, il suffit de retirer le filtre sur les classes d'objets (premier exemple) et d'ajouter le Remove-ADObject.
Bonjour,
Je souhaite supprimer un utilisateur spécifique, comment faire ? Pouvez-vous m’aider ?
Cordialement.
Get-ADObject -Filter ‘isDeleted -eq $true -and Name -like « *NOM_DE_L’OBJET_SUPP* » -and ObjectClass -eq « TYPE_OBJECT »‘-IncludeDeletedObjects| Remove-ADObject -Confirm:$false