Gestion des GPO avec PowerShell

Bonjour,

 

L’article suivant permet de créer des GPO sous 2008 et 2008 R2 avec PowerShell.

Pour faire cela, on appelle l’objet COM GPMgmt.GPM

$gpobj = New-Object -ComObject GPMgmt.GPM

Afin de s’assurer que l’objet COM est bien appelé, on affiche les détails de la variable $gpobj :

$gpobj | gm

 

image

Ces méthodes sont décrites dans ce lien :

https://msdn.microsoft.com/en-us/library/aa814177(VS.85).aspx

image

On appelle ensuite la méthode constants() et on précise le domaine dans lequel on va créer la GPO.

$gpmConstants = $gpobj.GetConstants()

clip_image002

HRESULT GetDomain(

[in] BSTR bstrDomain,

[in] BSTR bstrDomainController,

[in] long lDCFlags,

[out] IGPMDomain **plIGPMDomain);

clip_image004

Huble.com : domain name

UseAnyDC est le flag de l’argument.

 

Voir https://msdn.microsoft.com/en-us/library/aa814309(VS.85).aspx

IGPM::GetDomain Method

Creates and returns a GPMDomain object that corresponds to the specified domain.

clip_image002[4]

clip_image004[4]

$gpmDomain =$gpobj.GetDomain(“huble.com”, “”, $gpmConstants.UseAnyDC)

clip_image006

Maintenant, si on veut voir les méthodes de GetDomain(), on utilise gm (pour get-member):

$gpmDomain | gm

clip_image008

La méthode CreateGpo() permet de créer un GPO dans huble.com

$gpmNewGpo = $gpmDomain.CreateGPO()

 

On donne un nom à cette nouvelle GPO.

$gpmNewGpo.DisplayName = “This GPO is created by PowerShell"

clip_image010

$gpmNewGpo.Description = “This is a description of the GPO created by PowerShell"

Pour vérifier que c’est bien créé, on utilise la MMC “Group Policy Managementclip_image012

 

. Création d’un lien entre cette nouvelle GPO avec une OU existante, par exemple avec l’OU1 :

Pour cela, on va appeler les méthodes GetSOM() et CreateGPOLink() :

$som = $gpmdomain.GetSOM(“OU=OU1,DC=huble,dc=com”)

clip_image014

 

$som.CreateGPOLink(1,$gpmNewGPO)

clip_image016

 

Et enfin, utiliser GPMC pour vérifier la résultat de la création.

clip_image018