Question Manipulations de GPO

Plus d'informations
il y a 15 ans 5 mois #3106 par Grégory
Réponse de Grégory sur le sujet Re:Manipulations de GPO
Ayant eu besoin de la liste des OU pour mon script qui permet de lier des GPO à des OU

je vous fait profiter du script qui permet de les lister


[code:1]
$ldapQuery = \"(&(objectCategory=organizationalunit))\"
$de = new-object system.directoryservices.directoryentry
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findall()
$complist |foreach{$_.properties.name}
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 5 mois #3257 par Grégory
Réponse de Grégory sur le sujet Re:Manipulations de GPO
Bon je me suis remis dans les GPO ;)

Voici le script qui permet de lister les OU et les GPO qui sont liées et de lier une GPO à une OU

Je suis désolé j'ai pas encore commenté mais j'éditerai pour le faire

j'ai vu qu'on pouvait faire encore pas mal de chose(appliquer, supprimer,...) je verrais ça plus tard (si je peux vu que je viens d'être \"remercié\" de ma boite)

Edit : voilà le code commenté et j'ai corrigé qq erreurs (boucle et initialisation des variables)

[code:1]#ce script permet de lister les GPO et les OU auxquelles elles sont liées
#ce script permet aussi de lier une GPO à une OU
#le paramètre d'entrée est le nom de domaine
#lancement : .\get-gpolinks.ps1 domain.local

param ($domainName = \".\"«»)
$CrLF=\"`r`n\"

do{

$lst=\"\"
$var=\"\"

#On récupère la liste des GPO du domaine
$gpm = New-Object -ComObject GPMgmt.GPM
$gpmConstants = $gpm.GetConstants()
$gpmDomain = $gpm.GetDomain($domainName, \"\", $gpmConstants.UseAnyDC)
$gpmSearchCriteria = $gpm.CreateSearchCriteria()
$gpmAllGposInDomain = $gpmDomain.SearchGPOs($gpmSearchCriteria)

clear
write-host \"Liste des GPO et des OU auxquelles elles sont liées:\"
write-host \"\"

#On récupère les OU et les GPO liées
$gpmAllGposInDomain|foreach{
$gpmSearchCriteria = $gpm.CreateSearchCriteria()
$gpmSearchCriteria.Add($gpmConstants.SearchPropertySOMLinks, $gpmConstants.SearchOpContains, $_)
$gpmSomList = $gpmDomain.SearchSOMs($gpmSearchCriteria)


if ($gpmSomList.Count -ne 0)
{
write-host $_.displayname\":\"
$gpmsomlist|foreach{write-host \"-\"$_.name}
write-host \"\"
}
else
{
$var+=$_.displayname + $crlf
}
}
write-host ($crlf*2)
write-host \"Liste des GPO non liées:\"
write-host \"\"
$var

write-host ($CrLf)
write-host (\"_\" * 80)
write-host ($CrLf)

do{
$rep=read-host \"Voulez-vous lier une GPO ? [o/n]\"
}until ($rep -eq \"o\" -or $rep -eq \"n\"«»)

write-host \"\"

if($rep -eq \"o\"«»)
{

do{
$namegpo=read-host \"Entrez le nom de la GPO \"
$namegpo2=$gpmAllGposInDomain|where{$_.displayname -eq $namegpo}
write-host ($CrLf)
}
until ($namegpo -eq $namegpo2.displayname)


#On affiche la liste de OU du domaine
$ldapQuery = \"(&(objectCategory=organizationalunit))\"
$de = new-object system.directoryservices.directoryentry
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findall()
$lstou=$complist |foreach{$_.properties.name}

write-host \"Liste des OU :\"
$lstou
write-host ($CrLf)

do{
$nameou=read-host \"Entrez le nom de l'OU où vous voulez lier votre GPO \"
$nameou2=$lstou|where{$_ -eq $nameou}
write-host ($CrLf)
}
until ($nameou -eq $nameou2)

#on récupère le nom de domaine pour le mettre dans le chemin LDAP
$lst=$gpmDomain.domain.split(\".\"«»)
$dom=$lst[0]
$ext=$lst[1]
$pathou=\"ldap://ou=\" + $nameou + \",DC=\" + $dom + \",dc=\" + $ext

#on récupère l'OU
$ouid=$complist|where{$_.path -eq $pathou}
$oulnk=$gpmdomain.getsom($ouid.path)

#on récupère la GPO à lier
$gpo=$gpmAllGposInDomain|where{$_.displayname -eq $namegpo}

#On crée le lien
$oulnk.creategpolink(1,$gpo)


do{
$end=read-host \"Voulez-vous lier d'autres GPO ? [o/n]\"
}until ($end -eq \"o\" -or $end -eq \"n\"«»)

}

}until($end -eq \"n\" -or $rep -eq \"n\"«»)
[/code:1]<br><br>Message édité par: Nostra, à: 19/11/08 09:34

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.068 secondes
Propulsé par Kunena