Friday, October 10, 2014

FR (French) - Powershell 4.0 - Active Directory management - Remove-ADObject

Si nous voulons supprimer un objet (utilisateur, groupe, ordinateur ou unité d'organisation, par exemple), nous pouvons recourir à l'applet Remove-ADObject.

L'applet fonctionne plus ou moins de la même manière quel que soit l'objet.

Nous pouvons soit désigner l'objet directement avec le nom distingué (DN) comme dans l'exemple de l'ordinateur XP2 ci-dessous, soit utiliser Get-ADUser, Get-ADGroup ou Get-ADComputer pour désigner l'objet et seulement ensuite le supprimer avec l'applet Remove-ADObject. C'est l'exemple de l'utilisateur Katherine Phipps ci-dessous.


Dans ce premier exemple, je vais tenter de supprimer un objet dans l'unité d'organisation "XP_Clients" et puis l'unité d'organisation elle-même...

PS C:\> Remove-ADObject "cn=XP2,ou=XP_Clients,dc=mynet,dc=lan" -confirm:$false

La commande réussit. J'évite de devoir confirmer l'opération en ajoutant le paramètre facultatif -confirm avec la valeur $false.

Mais la tentative de supprimer l'unité d'organisation elle-même échoue en raison des objets qu'elle contient. C'est une sorte de garde-fou qui nous empêche de supprimer par mégarde des centaines ou des milliers d'objets-enfants. Nous devons mettre le paramètre -recursive en plus pour réussir cette opération:

PS C:\> Remove-ADObject "ou=XP_Clients,dc=mynet,dc=lan" -confirm:$false
Remove-ADObject : The operation cannot be performed because child objects exist.[...]

PS C:\> Remove-ADObject "ou=XP_Clients,dc=mynet,dc=lan" -recursive -confirm:$false


***

Supprimer un simple utilisateur est sans doute le plus simple. Si le paramètre -confirm égale $false, une seule ligne suffit :

PS C:\> Get-ADUser Katherine.Phipps | Remove-ADObject -confirm:$false

***

Nous pouvons supprimer des unités d'organisation comme les autres objets mais éventuellement après avoir désactivé la protection contre la suppression accidentelle (activée par défaut à la création d'une UO) : 

PS C:\> Get-ADOrganizationalUnit "OU=DELETE,DC=mynet,DC=lan" | Remove-ADObject -confirm:$false

Remove-ADObject : Access is denied [...].

PS C:\> Set-ADOrganizationalUnit "OU=DELETE,DC=mynet,DC=lan" -ProtectedFromAccidentalDeletion:$false

PS C:\> Get-ADOrganizationalUnit "OU=DELETE,DC=mynet,DC=lan" | Remove-ADObject -confirm:$false

No comments:

Post a Comment