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
Ces méthodes sont décrites dans ce lien :
https://msdn.microsoft.com/en-us/library/aa814177(VS.85).aspx
On appelle ensuite la méthode constants() et on précise le domaine dans lequel on va créer la GPO.
$gpmConstants = $gpobj.GetConstants()
HRESULT GetDomain(
[in] BSTR bstrDomain,
[in] BSTR bstrDomainController,
[in] long lDCFlags,
[out] IGPMDomain **plIGPMDomain);
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.
$gpmDomain =$gpobj.GetDomain(“huble.com”, “”, $gpmConstants.UseAnyDC)
Maintenant, si on veut voir les méthodes de GetDomain(), on utilise gm (pour get-member):
$gpmDomain | gm
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"
$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 Management”
. 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”)
$som.CreateGPOLink(1,$gpmNewGPO)
Et enfin, utiliser GPMC pour vérifier la résultat de la création.