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.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5470.Voir tous les posts

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.