Tuesday, September 30, 2014

FR (French) - Powershell 4.0 - Introduction - Move-ADObject

English - note to reader: as I'm bilingual, I wanted to write a series of blog posts about Active Directory management with Powershell (4.0) - but in French. I intend to continue blogging in English as well, perhaps with a hybrid migration to Exchange Online - Office 365 (after the staged migration that you can find in my previous posts).

In the title of the blog post, I'll add the prefix "FR (French)" to distinguish them from my posts in English.

Feel free to translate the page with Google Translate or make comments if you'd like me to clarify something (in French or in English).


***

Dans mes prochains postes de blogue, je voudrais me consacrer à la gestion d'Active Directory avec les applets de commande Powershell (version 4.0).

Un mot pour commencer : je vais utiliser le mot "applet" pour traduire "cmdlet" et je vais le mettre au masculin. D'abord, c'est un mot masculin. Ensuite, au Québec, on le met bien au masculin.

Pour les postes à venir, je vais supposer chez le lecteur à la fois une bonne connaissance d'Active Directory et de bonnes notions de Powershell. Autrement dit, je ne ferai de cours (de base) ni sur l'un ni sur l'autre. Si cela posait un problème pour le lecteur, je me permettrais de lui recommander d'autres sources pour une mise à niveau en ces matières.

En particulier, je vais me permettre, au nom de la concision, certains raccourcis que PowerShell admet du reste. Par exemple, je pourrais écrire "Select" au lieu de "Select-Object" ou bien "sl" au lieu de "Set-Location". Au lieu de taper "ProtectedFromAccidentalDeletion" après le applet Format-List (abrégé en "fl"), je pourrais écrire *protect*.

***

Il a fallu un moment de réflexion avant de décider comment j'allais organiser les postes. En effet, certains applets comme Get-ADUser, Get-ADGroup, et Get-ADComputer ne s'appliquent qu'aux utilisateurs, aux groupes et aux ordinateurs respectivement. D'autres, comme Move-ADObject ou Rename-ADObject, peuvent agir sur plusieurs types d'objets différents.

C'est au second genre de applets que mes premiers postes seront consacrés. Ensuite, je verrai les applets spécifiques aux utilisateurs, aux groupes et aux ordinateurs, etc..

Il est à remarquer que certaines tâches peuvent s'accomplir soit avec les applets Get-ADObject, Set-ADObject, New-ADObject, etc., soit avec les applets spécifiques à un objet particulier comme Get-ADUser, Set-ADGroup ou New-ADComputer.


Dans le premier cas, il faut préciser le type d'objet avec un paramètre, par exemple:

New-ADObject -Type Computer -Name PC1 (etc.)


Dans le second cas, l'applet désigne le type d'objet et il n'y a aucune raison de le préciser encore avec le paramètre -Type, par exemple:

New-ADComputer -Name PC1 -SamAccountName PC1


Je fais le choix de me concentrer sur les applets *-ADObject pour lesquels il n'y a pas d'équivalent parmi les applets spécifiques à un objet.

Nous commencerons par Move-ADObject




1er exemple: déplacer un utilisateur


Nous avons deux options :

PS C:\> Get-ADUser Aisha.Bhari | Move-ADObject -targetPath "ou=Berlin,dc=mynet,dc=lan"

ou...

PS C:\> Move-ADObject "cn=Aisha.Bhari,ou=Madrid,dc=mynet,dc=lan" -targetPath "ou=Berlin,dc=mynet,dc=lan"

Au contraire, ceci ne marche pas:

PS C:\> Move-ADObject Aisha.Bhari -targetPath "ou=Berlin,dc=mynet,dc=lan"
Move-ADObject : Cannot find an object with identity: 'Aisha.Bhari' under: 'DC=mynet,DC=lan'. [...]


Astuce: Il faut employer le nom distingué (DN) si nous voulons utiliser Move-ADObject d'emblée (au lieu de recourir à Get-ADObject en premier).



2ème exemple: déplacer un groupe


Peu importe le type d'objet, la syntaxe est toujours la même :

PS C:\> Get-ADGroup Accounting | Move-ADObject -targetpath "ou=Madrid,dc=mynet,dc=lan"

PS C:\> Move-ADObject "cn=Accounting,ou=Berlin,dc=mynet,dc=lan" -targetpath "ou=Madrid,dc=mynet,dc=lan"

Et encore une fois, nous avons besoin d'indiquer l'objet par son nom distingué (DN) si nous voulons utiliser la cmdlet Move-ADObject sans mettre l'applet Get-ADObject en premier. Ceci ne marche pas:

PS C:\> Move-ADObject Accounting -targetpath "ou=Madrid,dc=mynet,dc=lan"
Move-ADObject : Cannot find an object with identity: 'Accounting' under: 'DC=mynet,DC=lan'. [...]



3ème et dernier exemple: déplacer un ordinateur


PS C:\> Get-ADComputer PC5 | Move-ADObject -targetpath "OU=madrid,DC=mynet,DC=lan"

PS C:\> Move-ADObject CN=PC5,OU=Berlin,DC=mynet,DC=lan -targetpath "OU=madrid,DC=mynet,DC=lan"


Commentaire de la fin :

A mon avis, il est plus efficace d'utiliser Get-ADOject en premier, pour désigner l'objet, et ensuite, de passer l'objet à Move-ADObject avec le signe | ("pipeline") au lieu de taper tout le nom distingué. 


No comments:

Post a Comment