PowerShell et Shift + Ins, ou comment gagner en vitesse Hermes lorsque vous travaillez avec GPP


Le presse-papiers et PowerShell accéléreront, mais ne seront pas aveugles.


Utiliser GPP pour ajouter des fichiers de registre est effrayant et peu pratique - toutes ces branches de registre, type de clé, valeurs ... Surtout si les branches et les valeurs sont assez bonnes. Mais il existe quelques hacks de vie qui peuvent accélérer considérablement le travail avec les stratégies de groupe.


Vous pouvez bien sûr suspendre un script d'ouverture de session avec la commande d'importation de la branche de registre. Mais ce n'est pas notre méthode.


La première façon. Légèrement compliqué


La première option consiste à créer votre propre modèle de GPO. Cette méthode est particulièrement pratique si vous devez modifier les paramètres de valeur en fonction de l'utilisateur. Si vous ne voulez pas apprendre les principes de la formation de modèles, vous pouvez simplement exporter le fichier reg "correct" et le convertir en fichier modèle à l'aide du script REG_2_ADMXL.vbs publié dans la galerie de scripts Technet.


Supposons que nous voulons faciliter la vie des utilisateurs en vissant plusieurs moteurs de recherche à Internet Explorer comme suit:


  • si vous entrez le texte de la requête dans la barre d'adresse " g ", la requête sera recherchée sur Google;
  • "Texte de demande Y " - dans Yandex;
  • et « w query text» dans Wikipedia russe.

Pour ce faire, il suffit de préparer le fichier de registre:


Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchUrl\W] @="http://ru.wikipedia.org/wiki/:Search?search=%s" [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchUrl\Y] @="http://www.yandex.ru/yandsearch?rpt=rad&text=%s" [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchUrl\G] @="http://www.google.com/search?q=%s" 

Convertissez-le en modèle avec la commande suivante:


 cscript REG_2_ADMXL.vbs IE-search.reg Ru-ru IE-search.admx 

Le modèle résultant et le dossier avec le fichier de langue seront jetés dans le répertoire des modèles. Maintenant, notre stratégie apparaîtra dans le composant logiciel enfichable de gestion des objets de stratégie de groupe.



Modèle installé.


Le mécanisme n'est pas très pratique en termes de maintenance, mais en principe il fonctionne. Et ne conduisez rien manuellement.


Une autre option serait d'utiliser les applets de commande PowerShell pour travailler avec le GPO. Par exemple, pour restaurer l'élément de menu contextuel "Envoyer" aux utilisateurs, l'ensemble d'applets de commande sera le suivant:


 Import-module -Name GroupPolicy New-GPO -Name SendTo Set-GPRegistryValue -Name "SendTo" -key "Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -ValueName SendTo -Type ExpandString -value "C:\Users\Default\AppData\Roaming\Microsoft\Windows\SendTo" Set-GPLink -Name SendTo -Target "ou=Users,dc=domain,dc=com" -LinkEnabled Yes 

Cela ressemble à l'option pour une seule clé. S'il y a beaucoup de clés, pour plus de commodité, vous devrez réinventer la roue et convertir à nouveau le fichier de registre en un ensemble d'applets de commande PowerShell.


Vous pouvez en savoir plus sur l'utilisation des stratégies de groupe et l'automatisation de tout cela dans l'un des articles précédents, « Plonger dans les modèles et maîtriser les objets de stratégie de groupe Windows » . Eh bien, je vais parler de ma méthode préférée.


La deuxième façon. Copier - Coller (presque)


Comme vous l'avez peut-être remarqué (je ne l'ai pas remarqué très immédiatement), les actions sur les objets, y compris les opérations de presse-papiers standard, sont disponibles dans le composant logiciel enfichable Gestion des stratégies de groupe.



Le menu contextuel dans les paramètres de registre GPP.


Si vous copiez un objet dans le presse-papiers et le collez, il s'avère que cet objet est un fichier xml. Cela signifie que le fichier peut être pré-généré et ajouté au composant logiciel enfichable sans remplir manuellement les champs.


Pour cela, Malcolm McCaffery a écrit un script spécial. Il génère un fichier xml basé sur le fichier de registre exporté. Le script est disponible sur le blog de l' auteur.


Le script de l'auteur contient des appels supplémentaires à la fonction Convert-Reg2Xml et un bloc de paramètres supplémentaire. Ces erreurs sont facilement corrigées lors d'un test via PowerShell ISE. Néanmoins, juste au cas où, j'ai jeté la version corrigée sur pastebin . Il y a aussi un fork de ce script sur github , et même un service en ligne qui fait de même.

L'utilisation d'un script est extrêmement simple.


 Convert-Reg2Xml -regPath input.reg -xmlPath output.xml 

Le xml résultant peut même être simplement glissé dans le champ pour les paramètres de registre.


Analysons un exemple spécifique. Tout d'abord, exportez la branche de registre «correcte». Dans cet exemple, nous allons créer une stratégie pour activer l'affichage des fichiers, dossiers, extensions cachés et en même temps, nous ferons en sorte que ctfmon.exe démarre automatiquement pour modifier la mise en page en toute transparence.


Le fichier de registre est le suivant:


 Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced] "Hidden"=dword:00000001 "HideFileExt"=dword:00000000 "ShowSuperHidden"=dword:00000001 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] "Language Bar"=""ctfmon”=”CTFMON.EXE” 

Convertissez-le en xml. Si vous regardez le fichier résultant, il sera déjà comme ceci:


Liste XML complète sous le spoiler.
 <?xml version="1.0" encoding="utf-8"?> <Collection clsid="{53B533F5-224C-47e3-B01B-CA3B3F3FF4BF}" name="HKEY_CURRENT_USER"> <Collection clsid="{53B533F5-224C-47e3-B01B-CA3B3F3FF4BF}" name="Software"> <Collection clsid="{53B533F5-224C-47e3-B01B-CA3B3F3FF4BF}" name="Microsoft"> <Collection clsid="{53B533F5-224C-47e3-B01B-CA3B3F3FF4BF}" name="Windows"> <Collection clsid="{53B533F5-224C-47e3-B01B-CA3B3F3FF4BF}" name="CurrentVersion"> <Collection clsid="{53B533F5-224C-47e3-B01B-CA3B3F3FF4BF}" name="Explorer"> <Collection clsid="{53B533F5-224C-47e3-B01B-CA3B3F3FF4BF}" name="Advanced"> <Registry clsid="{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}" name="Hidden" descr="Imported Reg File" image="17"> <Properties action="U" hive="HKEY_CURRENT_USER" key="Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" name="Hidden" default="0" type="REG_DWORD" displayDecimal="0" value="00000001" /> </Registry> <Registry clsid="{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}" name="HideFileExt" descr="Imported Reg File" image="17"> <Properties action="U" hive="HKEY_CURRENT_USER" key="Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" name="HideFileExt" default="0" type="REG_DWORD" displayDecimal="0" value="00000000" /> </Registry> <Registry clsid="{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}" name="ShowSuperHidden" descr="Imported Reg File" image="17"> <Properties action="U" hive="HKEY_CURRENT_USER" key="Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" name="ShowSuperHidden" default="0" type="REG_DWORD" displayDecimal="0" value="00000001" /> </Registry> </Collection> </Collection> <Collection clsid="{53B533F5-224C-47e3-B01B-CA3B3F3FF4BF}" name="Run"> <Registry clsid="{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}" name="Language Bar" descr="Imported Reg File" image="7"> <Properties action="U" hive="HKEY_CURRENT_USER" key="Software\Microsoft\Windows\CurrentVersion\Run" name="Language Bar" default="0" type="REG_SZ" displayDecimal="0" value=""ctfmon”=”CTFMON.EXE”" /> </Registry> </Collection> </Collection> </Collection> </Collection> </Collection> </Collection> 

Vous pouvez maintenant simplement le coller dans le champ des paramètres du registre. Cette beauté se révélera:



Politique personnalisée.


Avec une dextérité appropriée, le processus prend moins de temps que la lecture de ce texte.


Pour plus de commodité, vous pouvez ajouter un élément pour les fichiers de registre dans le menu contextuel pour convertir les fichiers en général en deux clics.


Il suffira de créer un nouveau type d'action pour les objets de type regfile et d'écrire le chemin du script souhaité. Pour votre commodité, j'ai compilé cela, bien sûr, dans un fichier de registre:


 Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Classes\regfile\shell\convert2xml] @="convert2xml" [HKEY_CURRENT_USER\Software\Classes\regfile\shell\convert2xml\command] @="powershell.exe -File C:\\temp\\script.ps1 %1" 

Le chemin d'accès au script est spécifié dans la dernière ligne.


Pour que le script fonctionne, vous devez y ajouter les lignes suivantes:


 $output=(Split-Path -Path $args[0]) + "\output.xml" Convert-Reg2Xml -regPath $args[0] -xmlPath $output 

Maintenant, lorsque vous appelez le menu contextuel, un autre élément s'affiche, lorsque vous cliquez dessus, le fichier xml dont nous avons besoin apparaît à côté du fichier de registre.



Nouvel élément de menu contextuel.


Bien entendu, pour apporter de simples modifications au registre des utilisateurs et des ordinateurs, de tels mécanismes sont superflus. Mais pour configurer un grand nombre de paramètres, ces hacks de vie sont très pratiques.

Source: https://habr.com/ru/post/fr419483/


All Articles