Comment copier une GPO ? La réponse avec PowerShell
I. Présentation
Lorsque l'on veut créer plusieurs GPO similaires, on peut créer une GPO Starter qui va servir de base et ensuite créer les GPO à partir de ce modèle. Tout simplement, et c'est légitime, on peut avoir envie de créer une copie d'une GPO : comment faire ?
Avec la console GPMC (Gestion de stratégie de groupe), on peut y arriver, en quelques clics : il faut faire un clic droit sur la GPO, cliquez sur "Copier" puis faire un clic droit sur "Objets de stratégie de groupe" et faire coller. Pour copier la GPO d'un domaine à un autre : il faut créer une GPO vide, exporter les paramètres de la GPO que l'on veut dupliquer et les réimporter dans la nouvelle GPO, pas très intuitif comme procédure.
Pour créer une version de test d'une GPO à partir d'une GPO existante, c'est également intéressant de pouvoir dupliquer une GPO.
Voyons comment copier une stratégie de groupe.
II. Copy-GPO : copier ou dupliquer une GPO
Le cmdlet Copy-GPO, comme son nom l'indique, va permettre de réaliser une copie d'une GPO, et en plus très facilement ! De façon basique, il suffit de préciser la GPO source et la GPO destination (qui sera créée lors de la copie, ce n'est pas utile de créer l'objet avant).
Par exemple, pour copier la GPO "C_WSUS_Config" et créer une copie qui s'appelle "C_WSUS_Config_TEST", on utilisera cette commande :
Copy-GPO -SourceName C_WSUS_Config -TargetName C_WSUS_Config_TEST
Ce qui donne :
Si l'on regarde dans la console GPMC, la nouvelle GPO est bien là et elle contient exactement les mêmes paramètres ?
Avec la commande précédente, les ACL, c'est-à-dire les droits sur la GPO ne sont pas conservés, cela concerne notamment le filtrage de sécurité et la délégation. Si l'on veut conserver les ACL lors de la copie, il faut préciser le paramètre -CopyAcl, comme ceci :
Copy-GPO -SourceName C_WSUS_Config -TargetName C_WSUS_Config_TEST -CopyAcl
Attention : il est possible de récupérer les ACL lorsque l'on copie une GPO, mais les liaisons ne sont pas récupérées, il faudra les recréer.
Copier une GPO au sein d'un même domaine ce n'est pas plus compliqué, c'est la bonne nouvelle ! Avant de se quitter, voyons d'autres usages possibles de Copy-GPO...
III. Autres usages de Copy-GPO
Ce cmdlet est puissant et fort utile en phase de migration ou pour déployer des GPO dans plusieurs domaines. En effet, il va permettre de copier une GPO d'un domaine A vers un domaine B. Reprenons l'exemple précédent, sauf que cette fois-ci, nous allons copier la GPO "C_WSUS_Config" du domaine "it-connect.local" vers "it-connect.net", en conservant le même nom. Cela donne :
Copy-GPO -SourceName "C_WSUS_Config" -SourceDomain "it-connect.local" -TargetName "C_WSUS_Config" -TargetDomain "it-connect.net"
Pour spécifier le DC source à utiliser et le DC de destination, il y a deux paramètres qui peuvent être utilisés : -SourceDomainController et -TargetDomainController.
Autre chose intéressante, c'est la possibilité de copier toutes les GPO d'un domaine vers un autre. Pour cela, on va récupérer la liste de toutes les GPO via "Get-GPO -All" et on va créer une boucle pour copier chaque objet GPO retourné, il suffit de reprendre l'exemple précédent pour copier d'un domaine A vers un domaine B. Voici la commande correspondante :
Get-GPO -All -Domain "it-connect.local" | ForEach-Object {$_ | Copy-GPO -TargetName ($_.DisplayName) -TargetDomain "it-connect.net" -CopyAcl
Il est à noter que le cmdlet Copy-GPO supporte le paramètre -MigrationTable qui vous permet de spécifier le chemin vers une table de migration pour faire la correspondance entre plusieurs valeurs. Pratique, surtout pour copier une GPO d'un domaine vers un autre ?
Pour rappel, une table de migration peut être créée via l’Éditeur de table de migration accessible via GPMC.
Merci flo, j’avoue que j’avais jamais chercher en powershell et que c’est bien galere de refaire une GPO a la mano