Question
Manipulations de GPO
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 5 mois #3003
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Manipulations de GPO
Salut,
Nostra écrit:
[code:1]
do{
$rep=read-host \"Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]\"
}
until ($rep -eq \"o\" -or $rep -eq \"n\"«»)
#OU
do{
$rep=read-host \"Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]\"
}
while (!($rep -eq \"o\" -or $rep -eq \"n\"«»))
[/code:1]
Nostra écrit:
[code:1]
\"o\" -ne \"o\"
False
\"l\" -ne \"o\"
True
\"o\" -ne \"n\"
True
[/code:1]
Ta construction renvoi tjr vrai, de plus la logique inverse ne facilite pas la relecture mieux vaut énoncer le résultat attendu quitte à l'inverser selon les cas.
Par convention le while devrait être placé en début et until en fin (je suppose que tu connais la différence entre les 2 instructions).
Il existe une construction plus verbeuse mais plus pratique, où tu n'as pas à te préoccuper de tels tests :
www.microsoft.com/technet/scriptcenter/r...jan08/pstip0125.mspx
Nostra écrit:
Essaie ceci :Je voudrais sortir de la boucle quand $rep=\"o\" ou \"n\"
[code:1]
do{
$rep=read-host \"Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]\"
}
until ($rep -eq \"o\" -or $rep -eq \"n\"«»)
#OU
do{
$rep=read-host \"Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]\"
}
while (!($rep -eq \"o\" -or $rep -eq \"n\"«»))
[/code:1]
Nostra écrit:
Comme te l'a dit Arnaud ton test est tjr vrai :c'est pour ça que je comprends pas
[code:1]
\"o\" -ne \"o\"
False
\"l\" -ne \"o\"
True
\"o\" -ne \"n\"
True
[/code:1]
Ta construction renvoi tjr vrai, de plus la logique inverse ne facilite pas la relecture mieux vaut énoncer le résultat attendu quitte à l'inverser selon les cas.
Par convention le while devrait être placé en début et until en fin (je suppose que tu connais la différence entre les 2 instructions).
Il existe une construction plus verbeuse mais plus pratique, où tu n'as pas à te préoccuper de tels tests :
www.microsoft.com/technet/scriptcenter/r...jan08/pstip0125.mspx
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Grégory
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 49
- Remerciements reçus 0
il y a 17 ans 5 mois #3004
par Grégory
Réponse de Grégory sur le sujet Re:Manipulations de GPO
Bonsoir Laurent
J'ai essayé avec le until
[code:1]
do{
$rep=read-host \"Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]\"
}
until ($rep -eq \"o\" -or $rep -eq \"n\"«»)
[/code:1]
je sors bien de la boucle avec o ou n mais avec d'autres valeurs je quitte le script direct et ne boucle pas
j'ai essayé tout les types de boucle et j'ai toujours un problème
je pense que ça vient du -or
vu que quand je mets que while($rep -ne \"o\") ça marche très bien
enfin je reverrai tout ça lundi
Bon dimanche à vous
J'ai essayé avec le until
[code:1]
do{
$rep=read-host \"Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]\"
}
until ($rep -eq \"o\" -or $rep -eq \"n\"«»)
[/code:1]
je sors bien de la boucle avec o ou n mais avec d'autres valeurs je quitte le script direct et ne boucle pas
j'ai essayé tout les types de boucle et j'ai toujours un problème
je pense que ça vient du -or
vu que quand je mets que while($rep -ne \"o\") ça marche très bien
enfin je reverrai tout ça lundi
Bon dimanche à vous
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 5 mois #3005
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Manipulations de GPO
Nostra écrit:
[code:1]
PS G:\PS> do{
>> $rep=read-host \"Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]\"
>> }
>> until ($rep -eq \"o\" -or $rep -eq \"n\"«»)
>>
Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]: k
Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]: m
Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]: o
PS G:\PS> do{
>> $rep=read-host \"Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]\"
>> }
>> until ($rep -eq \"o\" -or $rep -eq \"n\"«»)
>>
Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]: rze
Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]: n
PS G:\PS>
[/code:1]
Sur mon poste je n'ai pas ce pb :je sors bien de la boucle avec o ou n mais avec d'autres valeurs je quitte le script direct et ne boucle pas
[code:1]
PS G:\PS> do{
>> $rep=read-host \"Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]\"
>> }
>> until ($rep -eq \"o\" -or $rep -eq \"n\"«»)
>>
Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]: k
Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]: m
Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]: o
PS G:\PS> do{
>> $rep=read-host \"Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]\"
>> }
>> until ($rep -eq \"o\" -or $rep -eq \"n\"«»)
>>
Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]: rze
Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]: n
PS G:\PS>
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Grégory
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 49
- Remerciements reçus 0
il y a 17 ans 5 mois #3007
par Grégory
Réponse de Grégory sur le sujet Re:Manipulations de GPO
Bon ben c'est bon 
je comprends pas pourquoi ça marchait pas ...
la seule différence c'est que je mettais le until à la suite de l'accolade
enfin tout est résolu
Bon ça fait un peu usine à gaz
j'essaierai d'optimiser avec des case
Edit : voici la version avec l'utilisation des switch
[code:1]#Ce script permet de lister toutes les GPO du domaine et affiche celles inactives (partielles ou complètes)
#Ensuite on peut ou non activer/désactiver les GPO
#le paramètre d'entrée est le nom de domaine
param ($procname = \".\"«»)
#On récupère les GPO
$gpm = New-Object -ComObject GPMgmt.GPM
$gpmConstants = $gpm.GetConstants()
$gpmDomain =$gpm.GetDomain($procname, “”, $gpmConstants.UseAnyDC)
$gpmSearchCriteria = $gpm.CreateSearchCriteria()
$gpmAllGpos = $gpmDomain.SearchGPOs($gpmSearchCriteria)
do{
clear
#On affiche les GPO du domaines
write-host \"Liste de toutes les GPO du domaine : \"
write-host\"\"
$gpmallgpos|foreach{$_.displayname}
write-host\"\"
write-host\"\"
#On affiche les GPO inactives
write-host \"GPO inactives ou partiellement inactives : \"
write-host\"\"
$gpmAllGpos|foreach{
If($_.isUserEnabled() -eq \"\" -and $_.iscomputerenabled() -eq \"\"«»)
{
write-host $_.displayname \" est totalement inactive\"
}
}
$gpmAllGpos|foreach{
If($_.isUserEnabled() -eq \"1\" -and $_.iscomputerenabled() -eq \"\"«»)
{
write-host $_.displayname \" est partiellement inactive : configuration ordinateur inactive\"
}
}
$gpmAllGpos|foreach{
If($_.isUserEnabled() -eq \"\" -and $_.iscomputerenabled() -eq \"1\"«»)
{
write-host $_.displayname \" est partiellement inactive : configuration utilisateur inactive\"
}
}
write-host\"\"
write-host\"\"
write-host \"_______________________________________________________________________\"
write-host\"\"
do{
$rep=read-host \"Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]\"
}
until ($rep -eq \"o\" -or $rep -eq \"n\"«»)
if($rep -eq \"o\"«»){
do{
write-host\"\"
$namegpo=read-host \"Entrez le nom de la GPO que vous voulez modifier \"
$namegpo2=$gpmAllGpos|where{$_.displayname -eq $namegpo}
}
until ($namegpo -eq $namegpo2.displayname)
do{
write-host \"\"
write-host \"Voulez-vous :\"
write-host \"1 : Activer la GPO\"
write-host \"2 : Désactiver la GPO\"
$rep1=read-host
write-host\"\"
}
until ($rep1 -eq \"1\" -or $rep1 -eq \"2\"«»)
if($rep1 -eq \"1\"«»)
{$var= \"Activer\"}
else
{$var=\"Désactiver\"}
do{
write-host \"\"
write-host \"Voulez-vous :\"
write-host \"1 : $var complètement la GPO\"
write-host \"2 : $var la configuration ordinateur de la GPO\"
write-host \"3 : $var la configuration utilisateur de la GPO\"
$rep=read-host
}
until ($rep -eq \"1\" -or $rep -eq \"2\" -or $rep -eq \"3\"«»)
if($rep1 -eq \"1\"«»){
switch($rep){
1 {$namegpo2.setuserenabled(\"true\"«»);$namegpo2.setcomputerenabled(\"true\"«»)}
2 {$namegpo2.setcomputerenabled(\"true\"«»)}
3 {$namegpo2.setuserenabled(\"true\"«»)}
}
write-host \"\"
write-host \"Configuration GPO modifiée\"}
else
{
switch($rep){
1 {$namegpo2.setuserenabled(\"\"«»);$namegpo2.setcomputerenabled(\"\"«»)}
2 {$namegpo2.setcomputerenabled(\"\"«»)}
3 {$namegpo2.setuserenabled(\"\"«»)}
}
write-host \"\"
write-host \"Configuration GPO modifiée\"}
}
do{
write-host\"\"
$rep=read-host \"Voulez-vous quitter le script ? [o/n]\"
}
until ($rep -eq \"o\" -or $rep -eq \"n\"«»)
}
until ($rep -eq \"o\"«»)
[/code:1]
Message édité par: Nostra, à: 20/10/08 11:05<br><br>Message édité par: Nostra, à: 20/10/08 11:08
je comprends pas pourquoi ça marchait pas ...
la seule différence c'est que je mettais le until à la suite de l'accolade
enfin tout est résolu
Bon ça fait un peu usine à gaz
j'essaierai d'optimiser avec des case
Edit : voici la version avec l'utilisation des switch
[code:1]#Ce script permet de lister toutes les GPO du domaine et affiche celles inactives (partielles ou complètes)
#Ensuite on peut ou non activer/désactiver les GPO
#le paramètre d'entrée est le nom de domaine
param ($procname = \".\"«»)
#On récupère les GPO
$gpm = New-Object -ComObject GPMgmt.GPM
$gpmConstants = $gpm.GetConstants()
$gpmDomain =$gpm.GetDomain($procname, “”, $gpmConstants.UseAnyDC)
$gpmSearchCriteria = $gpm.CreateSearchCriteria()
$gpmAllGpos = $gpmDomain.SearchGPOs($gpmSearchCriteria)
do{
clear
#On affiche les GPO du domaines
write-host \"Liste de toutes les GPO du domaine : \"
write-host\"\"
$gpmallgpos|foreach{$_.displayname}
write-host\"\"
write-host\"\"
#On affiche les GPO inactives
write-host \"GPO inactives ou partiellement inactives : \"
write-host\"\"
$gpmAllGpos|foreach{
If($_.isUserEnabled() -eq \"\" -and $_.iscomputerenabled() -eq \"\"«»)
{
write-host $_.displayname \" est totalement inactive\"
}
}
$gpmAllGpos|foreach{
If($_.isUserEnabled() -eq \"1\" -and $_.iscomputerenabled() -eq \"\"«»)
{
write-host $_.displayname \" est partiellement inactive : configuration ordinateur inactive\"
}
}
$gpmAllGpos|foreach{
If($_.isUserEnabled() -eq \"\" -and $_.iscomputerenabled() -eq \"1\"«»)
{
write-host $_.displayname \" est partiellement inactive : configuration utilisateur inactive\"
}
}
write-host\"\"
write-host\"\"
write-host \"_______________________________________________________________________\"
write-host\"\"
do{
$rep=read-host \"Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]\"
}
until ($rep -eq \"o\" -or $rep -eq \"n\"«»)
if($rep -eq \"o\"«»){
do{
write-host\"\"
$namegpo=read-host \"Entrez le nom de la GPO que vous voulez modifier \"
$namegpo2=$gpmAllGpos|where{$_.displayname -eq $namegpo}
}
until ($namegpo -eq $namegpo2.displayname)
do{
write-host \"\"
write-host \"Voulez-vous :\"
write-host \"1 : Activer la GPO\"
write-host \"2 : Désactiver la GPO\"
$rep1=read-host
write-host\"\"
}
until ($rep1 -eq \"1\" -or $rep1 -eq \"2\"«»)
if($rep1 -eq \"1\"«»)
{$var= \"Activer\"}
else
{$var=\"Désactiver\"}
do{
write-host \"\"
write-host \"Voulez-vous :\"
write-host \"1 : $var complètement la GPO\"
write-host \"2 : $var la configuration ordinateur de la GPO\"
write-host \"3 : $var la configuration utilisateur de la GPO\"
$rep=read-host
}
until ($rep -eq \"1\" -or $rep -eq \"2\" -or $rep -eq \"3\"«»)
if($rep1 -eq \"1\"«»){
switch($rep){
1 {$namegpo2.setuserenabled(\"true\"«»);$namegpo2.setcomputerenabled(\"true\"«»)}
2 {$namegpo2.setcomputerenabled(\"true\"«»)}
3 {$namegpo2.setuserenabled(\"true\"«»)}
}
write-host \"\"
write-host \"Configuration GPO modifiée\"}
else
{
switch($rep){
1 {$namegpo2.setuserenabled(\"\"«»);$namegpo2.setcomputerenabled(\"\"«»)}
2 {$namegpo2.setcomputerenabled(\"\"«»)}
3 {$namegpo2.setuserenabled(\"\"«»)}
}
write-host \"\"
write-host \"Configuration GPO modifiée\"}
}
do{
write-host\"\"
$rep=read-host \"Voulez-vous quitter le script ? [o/n]\"
}
until ($rep -eq \"o\" -or $rep -eq \"n\"«»)
}
until ($rep -eq \"o\"«»)
[/code:1]
Message édité par: Nostra, à: 20/10/08 11:05<br><br>Message édité par: Nostra, à: 20/10/08 11:08
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 5 mois #3008
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Manipulations de GPO
Nostra écrit:
Ensuite d'optimiser le code et de le factoriser, oui on peut le faire
[code:1]
$gpmAllGpos|foreach{
if ($_.isUserEnabled -eq $true -and $_.iscomputerenabled -eq $false )
{ $Msg =\"est partiellement inactive : configuration ordinateur inactive\" }
elseif ($_.isUserEnabled -eq $false -and $_.iscomputerenabled -eq $true)
{ $MSg=\"est partiellement inactive : configuration utilisateur inactive\" }
else{ $Msg =\"est totalement inactive\" }
write-host $_.displayname+\" \"+$Msg
}
[/code:1]
Vérifie si isUserEnabled est une méthode ou une propriété. Et mieux vaut tester sur des valeurs de type booléen que de type string.
Ensuite je pense que tu peux faire ceci, à vérifier :
[code:1]
if($rep1 -eq \"1\"«»){
$Value=$True
else $Value=$False
#ou mieux
$Value=$rep1 -eq \"1\"
#Conversion implicite string ->integer
switch($rep){
\"1\" {$namegpo2.setuserenabled($value);$namegpo2.setcomputerenabled($Value)}
\"2\" {$namegpo2.setcomputerenabled($Value)}
\"3\" {$namegpo2.setuserenabled($Value)}
}
write-host \"\"
write-host \"Configuration GPO modifiée\"}
[/code:1]
Et pour les multiples retour chariot :
[code:1]
$CrLF=\"`r`n\"
write-host ($CrLf*3)
write-host ($CrLf*5)
write-host (\"-\" * 80)
#ou
$S=\"-\" * 80
write-host $S
[/code:1]
Non je ne trouve pas, c'est une suite de traitements.Bon ça fait un peu usine à gaz
Ensuite d'optimiser le code et de le factoriser, oui on peut le faire
[code:1]
$gpmAllGpos|foreach{
if ($_.isUserEnabled -eq $true -and $_.iscomputerenabled -eq $false )
{ $Msg =\"est partiellement inactive : configuration ordinateur inactive\" }
elseif ($_.isUserEnabled -eq $false -and $_.iscomputerenabled -eq $true)
{ $MSg=\"est partiellement inactive : configuration utilisateur inactive\" }
else{ $Msg =\"est totalement inactive\" }
write-host $_.displayname+\" \"+$Msg
}
[/code:1]
Vérifie si isUserEnabled est une méthode ou une propriété. Et mieux vaut tester sur des valeurs de type booléen que de type string.
Ensuite je pense que tu peux faire ceci, à vérifier :
[code:1]
if($rep1 -eq \"1\"«»){
$Value=$True
else $Value=$False
#ou mieux
$Value=$rep1 -eq \"1\"
#Conversion implicite string ->integer
switch($rep){
\"1\" {$namegpo2.setuserenabled($value);$namegpo2.setcomputerenabled($Value)}
\"2\" {$namegpo2.setcomputerenabled($Value)}
\"3\" {$namegpo2.setuserenabled($Value)}
}
write-host \"\"
write-host \"Configuration GPO modifiée\"}
[/code:1]
Et pour les multiples retour chariot :
[code:1]
$CrLF=\"`r`n\"
write-host ($CrLf*3)
write-host ($CrLf*5)
write-host (\"-\" * 80)
#ou
$S=\"-\" * 80
write-host $S
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Grégory
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 49
- Remerciements reçus 0
il y a 17 ans 5 mois #3009
par Grégory
Réponse de Grégory sur le sujet Re:Manipulations de GPO
Salut Laurent
C'était une usine à gaz avant que je fasse une première optimisation avec les switch et la variable qui prend activer/désactiver
Voilà donc la version améliorée suivant tes remarques pertinentes :
En revanche j'ai été obligé de retoucher ton premier bout de code avec un autre \"si\" puisque ça affichait les totalement actives et inactives, initialiser la variable $msg et la tester
[code:1]#Ce script permet de lister toutes les GPO du domaine et affiche celles inactives (partielles ou complètes)
#Ensuite on peut ou non activer/désactiver les GPO
#le paramètre d'entrée est le nom de domaine
param ($procname = \".\"«»)
$CrLF=\"`r`n\"
#On récupère les GPO
$gpm = New-Object -ComObject GPMgmt.GPM
$gpmConstants = $gpm.GetConstants()
$gpmDomain =$gpm.GetDomain($procname, “”, $gpmConstants.UseAnyDC)
$gpmSearchCriteria = $gpm.CreateSearchCriteria()
$gpmAllGpos = $gpmDomain.SearchGPOs($gpmSearchCriteria)
do{
clear
#On affiche les GPO du domaines
write-host \"Liste de toutes les GPO du domaine : \"
write-host ($CrLf)
$gpmallgpos|foreach{$_.displayname}
write-host ($CrLf*2)
#On affiche les GPO inactives
write-host \"GPO inactives ou partiellement inactives : \"
write-host ($CrLf)
$gpmAllGpos|foreach{
$msg=\"\"
if ($_.isUserEnabled() -eq $true -and $_.iscomputerenabled() -eq $false)
{$Msg =\"est partiellement inactive : configuration ordinateur inactive\" }
elseif ($_.isUserEnabled() -eq $false -and $_.iscomputerenabled() -eq $true)
{$MSg=\"est partiellement inactive : configuration utilisateur inactive\" }
elseif($_.isUserEnabled() -eq $false -and $_.iscomputerenabled() -eq $false)
{ $Msg =\"est totalement inactive\" }
if ($msg -ne \"\"«»)
{write-host $_.displayname $Msg}
}
write-host ($CrLf*2)
write-host (\"_\" * 80)
write-host ($CrLf)
do{
$rep=read-host \"Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]\"
}
until ($rep -eq \"o\" -or $rep -eq \"n\"«»)
if($rep -eq \"o\"«»){
do{
write-host ($CrLf)
$namegpo=read-host \"Entrez le nom de la GPO que vous voulez modifier \"
$namegpo2=$gpmAllGpos|where{$_.displayname -eq $namegpo}
}
until ($namegpo -eq $namegpo2.displayname)
do{
write-host ($CrLf)
write-host \"Voulez-vous :\"
write-host \"1 : Activer la GPO\"
write-host \"2 : Désactiver la GPO\"
$rep1=read-host
write-host ($CrLf)
}
until ($rep1 -eq \"1\" -or $rep1 -eq \"2\"«»)
if($rep1 -eq \"1\"«»)
{$var= \"Activer\";$Value=$True}
else
{$var=\"Désactiver\";$Value=$False}
do{
write-host ($CrLf)
write-host \"Voulez-vous :\"
write-host \"1 : $var complètement la GPO\"
write-host \"2 : $var la configuration ordinateur de la GPO\"
write-host \"3 : $var la configuration utilisateur de la GPO\"
$rep=read-host
}
until ($rep -eq \"1\" -or $rep -eq \"2\" -or $rep -eq \"3\"«»)
switch($rep){
1 {$namegpo2.setuserenabled($value);$namegpo2.setcomputerenabled($value)}
2 {$namegpo2.setcomputerenabled($value)}
3 {$namegpo2.setuserenabled($value)}
}
write-host ($CrLf)
write-host \"Configuration GPO modifiée\"}
do{
write-host ($CrLf)
$rep=read-host \"Voulez-vous quitter le script ? [o/n]\"
}
until ($rep -eq \"o\" -or $rep -eq \"n\"«»)
}
until ($rep -eq \"o\"«»)[/code:1]
C'était une usine à gaz avant que je fasse une première optimisation avec les switch et la variable qui prend activer/désactiver
Voilà donc la version améliorée suivant tes remarques pertinentes :
En revanche j'ai été obligé de retoucher ton premier bout de code avec un autre \"si\" puisque ça affichait les totalement actives et inactives, initialiser la variable $msg et la tester
[code:1]#Ce script permet de lister toutes les GPO du domaine et affiche celles inactives (partielles ou complètes)
#Ensuite on peut ou non activer/désactiver les GPO
#le paramètre d'entrée est le nom de domaine
param ($procname = \".\"«»)
$CrLF=\"`r`n\"
#On récupère les GPO
$gpm = New-Object -ComObject GPMgmt.GPM
$gpmConstants = $gpm.GetConstants()
$gpmDomain =$gpm.GetDomain($procname, “”, $gpmConstants.UseAnyDC)
$gpmSearchCriteria = $gpm.CreateSearchCriteria()
$gpmAllGpos = $gpmDomain.SearchGPOs($gpmSearchCriteria)
do{
clear
#On affiche les GPO du domaines
write-host \"Liste de toutes les GPO du domaine : \"
write-host ($CrLf)
$gpmallgpos|foreach{$_.displayname}
write-host ($CrLf*2)
#On affiche les GPO inactives
write-host \"GPO inactives ou partiellement inactives : \"
write-host ($CrLf)
$gpmAllGpos|foreach{
$msg=\"\"
if ($_.isUserEnabled() -eq $true -and $_.iscomputerenabled() -eq $false)
{$Msg =\"est partiellement inactive : configuration ordinateur inactive\" }
elseif ($_.isUserEnabled() -eq $false -and $_.iscomputerenabled() -eq $true)
{$MSg=\"est partiellement inactive : configuration utilisateur inactive\" }
elseif($_.isUserEnabled() -eq $false -and $_.iscomputerenabled() -eq $false)
{ $Msg =\"est totalement inactive\" }
if ($msg -ne \"\"«»)
{write-host $_.displayname $Msg}
}
write-host ($CrLf*2)
write-host (\"_\" * 80)
write-host ($CrLf)
do{
$rep=read-host \"Voulez-vous modifier les paramètres d'activations d'une des GPO ? [o/n]\"
}
until ($rep -eq \"o\" -or $rep -eq \"n\"«»)
if($rep -eq \"o\"«»){
do{
write-host ($CrLf)
$namegpo=read-host \"Entrez le nom de la GPO que vous voulez modifier \"
$namegpo2=$gpmAllGpos|where{$_.displayname -eq $namegpo}
}
until ($namegpo -eq $namegpo2.displayname)
do{
write-host ($CrLf)
write-host \"Voulez-vous :\"
write-host \"1 : Activer la GPO\"
write-host \"2 : Désactiver la GPO\"
$rep1=read-host
write-host ($CrLf)
}
until ($rep1 -eq \"1\" -or $rep1 -eq \"2\"«»)
if($rep1 -eq \"1\"«»)
{$var= \"Activer\";$Value=$True}
else
{$var=\"Désactiver\";$Value=$False}
do{
write-host ($CrLf)
write-host \"Voulez-vous :\"
write-host \"1 : $var complètement la GPO\"
write-host \"2 : $var la configuration ordinateur de la GPO\"
write-host \"3 : $var la configuration utilisateur de la GPO\"
$rep=read-host
}
until ($rep -eq \"1\" -or $rep -eq \"2\" -or $rep -eq \"3\"«»)
switch($rep){
1 {$namegpo2.setuserenabled($value);$namegpo2.setcomputerenabled($value)}
2 {$namegpo2.setcomputerenabled($value)}
3 {$namegpo2.setuserenabled($value)}
}
write-host ($CrLf)
write-host \"Configuration GPO modifiée\"}
do{
write-host ($CrLf)
$rep=read-host \"Voulez-vous quitter le script ? [o/n]\"
}
until ($rep -eq \"o\" -or $rep -eq \"n\"«»)
}
until ($rep -eq \"o\"«»)[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.099 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Manipulations de GPO