powershell_registry

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
powershell_registry [2019/05/21 10:52] – [Gérer le registre Windows] nekanpowershell_registry [2021/03/05 15:57] (Version actuelle) nekan
Ligne 1: Ligne 1:
-~~CLOSETOC~~ 
- 
 ====== Gérer le registre Windows ====== ====== Gérer le registre Windows ======
 +<label type="info">Création</label> --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2019/05/20 20:35//
  
 Le registre Windows stocke les paramètres du système et de bon nombre d'applications. Powershell peut créer, récupérer, modifier et supprimer des informations dans cette base et ainsi répondre à vos différents besoins. Le registre Windows stocke les paramètres du système et de bon nombre d'applications. Powershell peut créer, récupérer, modifier et supprimer des informations dans cette base et ainsi répondre à vos différents besoins.
  
-<note warning>Attention : le registre est une zone sensible. Sa modification ne peut être effectuée qu'avec des droits d'administrateur et l'ajout, la modification et/ou la suppression de certaines informations peuvent entraîner l'instabilité de votre système. A manipuler qu'en connaissance de cause donc.</note>+<callout type="danger" icon="true" title="Attention">Le registre est une zone sensible. Sa modification ne peut être effectuée qu'avec des droits d'administrateur et l'ajout, la modification et/ou la suppression de certaines informations peuvent entraîner l'instabilité de votre système. A ne manipuler qu'en connaissance de cause donc.</callout>
  
 Windows organise son registre comme une arborescence de fichier : Windows organise son registre comme une arborescence de fichier :
Ligne 30: Ligne 29:
   * Référence Microsoft : [[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/new-item?view=powershell-6|New-Item]]   * Référence Microsoft : [[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/new-item?view=powershell-6|New-Item]]
   * Référence Microsoft : [[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-item?view=powershell-6|Get-Item]]   * Référence Microsoft : [[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-item?view=powershell-6|Get-Item]]
 +  * Référence Microsoft : [[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/Set-item?view=powershell-6|Set-Item]]
   * Référence Microsoft : [[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/rename-item?view=powershell-6|Rename-Item]]   * Référence Microsoft : [[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/rename-item?view=powershell-6|Rename-Item]]
   * Référence Microsoft : [[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/copy-item?view=powershell-6|Copy-Item]]   * Référence Microsoft : [[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/copy-item?view=powershell-6|Copy-Item]]
Ligne 39: Ligne 39:
  
 Pour créer la clé ''Test'' dans le registre ''HKEY_LOCAL_MACHINE'' et en tant que sous-clé de ''SOFTWARE\ShyrkaSystem'', on utilise la commande **New-Item** : Pour créer la clé ''Test'' dans le registre ''HKEY_LOCAL_MACHINE'' et en tant que sous-clé de ''SOFTWARE\ShyrkaSystem'', on utilise la commande **New-Item** :
-<code:ps1>New-Item -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test"</code>+<sxh powershell>New-Item -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test"</sxh>
  
 On pourrait aussi utiliser le paramètre //-Value// afin de définir la valeur par défaut des propriétés de la clé, par exemple : On pourrait aussi utiliser le paramètre //-Value// afin de définir la valeur par défaut des propriétés de la clé, par exemple :
-<code:ps1>New-Item -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Value "valeur test"</code>+<sxh powershell>New-Item -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Value "valeur test"</sxh>
  
 La console nous renvoie alors : La console nous renvoie alors :
-<code:ps1>    Hive: HKEY_LOCAL_MACHINE\SOFTWARE\ShyrkaSystem+<sxh powershell>    Hive: HKEY_LOCAL_MACHINE\SOFTWARE\ShyrkaSystem
  
  
-Name                           Property                                                                                                                                                        +Name                           Property  
-----                           --------                                                                                                                                                        +----                           -------- 
-Test                           (default) : valeur test </code>+Test                           (default) : valeur test </sxh>
  
 ==== Lire une clé ==== ==== Lire une clé ====
  
 Après avoir créé des propriétés à notre nouvelle clé (voir plus bas) pour les besoins de la démonstration, on peut lire le contenu d'une clé avec la commande **Get-Item** suive de //-Path// pour indiquer son chemin : Après avoir créé des propriétés à notre nouvelle clé (voir plus bas) pour les besoins de la démonstration, on peut lire le contenu d'une clé avec la commande **Get-Item** suive de //-Path// pour indiquer son chemin :
-<code:ps1>Get-Item -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test"</code>+<sxh powershell>Get-Item -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test"</sxh>
  
-La console nous renvois alors :<code:ps1+La console nous renvois alors :<sxh powershell
-Name                           Property                                                                                                                                                        +Name                           Property 
-----                           --------                                                                                                                                                        +----                           -------- 
-Test                           Property1 : Value1                                                                                                                                              +Test                           Property1 : Value1 
-                               Property2 : 10 </code>+                               Property2 : 10 </sxh> 
 +                                
 +==== Définir la valeur par défaut d'une clé ====
  
 +Chaque clé est créée avec une valeur par défaut. Si cette valeur n'est pas définie à la création de la clé ou si ou souhaite la modifier, on peu faire appel à la commande **Set-Item** suivi des paramètres //-Path// pour indiquer le chemin de la clé et //-Value// pour définir la nouvelle valeur :
 +<sxh powershell>Set-Item -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Value "DefaultValue"</sxh>
 +
 +Aucun retour console.
 ==== Renommer une clé ==== ==== Renommer une clé ====
  
 Renommer une clé est possible grâce à la commande **Rename-Item** suivi de //-Path// pour indiquer son chemin et //-NewName// pour son nouveau nom : Renommer une clé est possible grâce à la commande **Rename-Item** suivi de //-Path// pour indiquer son chemin et //-NewName// pour son nouveau nom :
-<code:ps1>Rename-Item -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -NewName "Test2"</code>+<sxh powershell>Rename-Item -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -NewName "Test2"</sxh>
  
 Aucun retour console. Aucun retour console.
Ligne 72: Ligne 78:
  
 La copie de clés s'obtient via la commande **Copy-Item**. On utilisera le paramètre //-Path// pour indiquer le chemin de la source et //-Destination// pour le chemin et le nom de la cible : La copie de clés s'obtient via la commande **Copy-Item**. On utilisera le paramètre //-Path// pour indiquer le chemin de la source et //-Destination// pour le chemin et le nom de la cible :
-<code:ps1>Copy-Item -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Destination "HKLM:\SOFTWARE\ShyrkaSystem\Test2"</code>+<sxh powershell>Copy-Item -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Destination "HKLM:\SOFTWARE\ShyrkaSystem\Test2"</sxh>
  
 Aucun retour console. Aucun retour console.
Ligne 78: Ligne 84:
  
 Utiliser la commande **Move-Item** permet de déplacer une clé définie par son chemin (//-Path//) vers une autre chemin (//-Destination//) : Utiliser la commande **Move-Item** permet de déplacer une clé définie par son chemin (//-Path//) vers une autre chemin (//-Destination//) :
-<code:ps1>Move-Item -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test2" -Destination "HKLM:\SOFTWARE\ShyrkaSystemTemp"</code>+<sxh powershell>Move-Item -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test2" -Destination "HKLM:\SOFTWARE\ShyrkaSystemTemp"</sxh>
  
 Aucun retour console. Aucun retour console.
Ligne 84: Ligne 90:
  
 La suppression d'un clé passe par la commande **Remove-Item** associé au paramètre //-Path// pour indiquer le chemin de la clé à supprimer. On devra y ajouter //-Recurse// pour supprimer les sous-clés : La suppression d'un clé passe par la commande **Remove-Item** associé au paramètre //-Path// pour indiquer le chemin de la clé à supprimer. On devra y ajouter //-Recurse// pour supprimer les sous-clés :
-<code:ps1>Remove-Item -Path "HKLM:\SOFTWARE\ShyrkaSystemTemp" -Recurse</code>+<sxh powershell>Remove-Item -Path "HKLM:\SOFTWARE\ShyrkaSystemTemp" -Recurse</sxh>
  
 Aucun retour console. Aucun retour console.
Ligne 90: Ligne 96:
  
 A l'instar de **Get-Item** qui lit les propriétés d'une clé, la commande **Get-ChildItem** lira pour une clé définie par //-Path//, l'ensemble des propriétés de chaque sous-clé : A l'instar de **Get-Item** qui lit les propriétés d'une clé, la commande **Get-ChildItem** lira pour une clé définie par //-Path//, l'ensemble des propriétés de chaque sous-clé :
-<code:ps1>Get-ChildItem -Path "HKLM:\SOFTWARE\ShyrkaSystem"</code>+<sxh powershell>Get-ChildItem -Path "HKLM:\SOFTWARE\ShyrkaSystem"</sxh>
  
 Ce qui renvoie dans la console : Ce qui renvoie dans la console :
-<code:ps1>Name                           Property                                                                                                                                                        +<sxh powershell>Name                           Property 
-----                           --------                                                                                                                                                        +----                           -------- 
-Test                           Property1 : Value1                                                                                                                                              +Test                           Property1 : Value1 
-                               Property2 : 10                                                                                                                                                  +                               Property2 : 10 
-Test2                          QW : 5411 </code>+Test2                          QW : 5411 </sxh>
                                                                
 Alors que : Alors que :
-<code:ps1>Get-Item -Path "HKLM:\SOFTWARE\ShyrkaSystem"</code>+<sxh powershell>Get-Item -Path "HKLM:\SOFTWARE\ShyrkaSystem"</sxh>
 Renvoie : Renvoie :
-<code:ps1>Name                           Property                                                                                                                                                        +<sxh powershell>Name                           Property 
-----                           --------                                                                                                                                                        +----                           -------- 
-ShyrkaSystem                   bin : 0 </code>+ShyrkaSystem                   bin : 0 </sxh>
 ===== Gestion des propriétés ===== ===== Gestion des propriétés =====
  
Ligne 117: Ligne 123:
   * Référence Microsoft : [[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/remove-itemproperty?view=powershell-6|Remove-ItemProperty]]   * Référence Microsoft : [[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/remove-itemproperty?view=powershell-6|Remove-ItemProperty]]
  
-===== Les types de propriétés =====+==== Les types de propriétés ====
  
 Les propriétés sont définies selon des types bien précis qui détermine la nature de sa valeur : Les propriétés sont définies selon des types bien précis qui détermine la nature de sa valeur :
Ligne 130: Ligne 136:
 ==== Créer une propriété ==== ==== Créer une propriété ====
  
-Pour créer une propriété, la commande **New-itemProperty** sera utilisée en indiquant le chemin avec le paramètre //-Path//, le nom avec //-Name// et la valeur avec //-Value//. Cela nous donne : +Pour créer une propriété, la commande **New-ItemProperty** sera utilisée en indiquant le chemin avec le paramètre //-Path//, le nom avec //-Name// et la valeur avec //-Value//. Cela nous donne : 
-<code:ps1>New-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Name "Property1" -Value "Test1" -PropertyType String</code>+<sxh powershell>New-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Name "Property1" -Value "Test1" -PropertyType String</sxh>
  
-Ce qui renvoie dans la console :<code:ps1>Property1    : Test1+Ce qui renvoie dans la console :<sxh powershell>Property1    : Test1
 PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\ShyrkaSystem\Test PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\ShyrkaSystem\Test
 PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\ShyrkaSystem PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\ShyrkaSystem
 PSChildName  : Test PSChildName  : Test
 PSDrive      : HKLM PSDrive      : HKLM
-PSProvider   : Microsoft.PowerShell.Core\Registry</code>+PSProvider   : Microsoft.PowerShell.Core\Registry</sxh>
  
 ==== Lire une propriété ==== ==== Lire une propriété ====
  
 La commande **Get-ItemProperty** lit les informations de la proriété indiquée par //-Name// au chemin défini par //-Path//. La commande **Get-ItemProperty** lit les informations de la proriété indiquée par //-Name// au chemin défini par //-Path//.
-<code:ps1>Get-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Name "Property1"</code>+<sxh powershell>Get-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Name "Property1"</sxh>
  
-Ce qui nous renvoie :<code:ps1>Property1    : Test1+Ce qui nous renvoie :<sxh powershell>Property1    : Test1
 PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\ShyrkaSystem\Test PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\ShyrkaSystem\Test
 PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\ShyrkaSystem PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\ShyrkaSystem
 PSChildName  : Test PSChildName  : Test
 PSDrive      : HKLM PSDrive      : HKLM
-PSProvider   : Microsoft.PowerShell.Core\Registry</code>+PSProvider   : Microsoft.PowerShell.Core\Registry</sxh>
  
 On remarque qu'une des "propriétés" de cette propriété est elle-même et qu'elle contient sa valeur. C'est donc en l'appelant elle-même que l'on peut obtenir la valeur d'une propriété : On remarque qu'une des "propriétés" de cette propriété est elle-même et qu'elle contient sa valeur. C'est donc en l'appelant elle-même que l'on peut obtenir la valeur d'une propriété :
-<code:ps1>(Get-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Name "Property1").Property1</code>+<sxh powershell>(Get-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Name "Property1").Property1</sxh>
  
-Ce qui nous renvoie :<code:ps1>Test1</code>+Ce qui nous renvoie :<sxh powershell>Test1</sxh>
 ==== Modifier la valeur d'une propriété ==== ==== Modifier la valeur d'une propriété ====
  
 Pour modifier la valeur d'une propriété, on utilise la commande **Set-ItemProperty**. Après avoir indiqué les informations //-Path// et //-Name//, on utilisera le paramètre //-Value// pour indiquer la nouvelle valeur : Pour modifier la valeur d'une propriété, on utilise la commande **Set-ItemProperty**. Après avoir indiqué les informations //-Path// et //-Name//, on utilisera le paramètre //-Value// pour indiquer la nouvelle valeur :
-<code:ps1>Set-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Name "Property1" -Value "Test2"</code>+<sxh powershell>Set-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Name "Property1" -Value "Test2"</sxh>
  
 Aucun retour console. Aucun retour console.
Ligne 165: Ligne 171:
  
 **Rename-ItemProperty** permet de renommer une propriété. Là aussi, on utilisera //-Path// et //-Name// pour définir la propriété cible puis //-NewName// pour le nouveau nom : **Rename-ItemProperty** permet de renommer une propriété. Là aussi, on utilisera //-Path// et //-Name// pour définir la propriété cible puis //-NewName// pour le nouveau nom :
-<code:ps1>Rename-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Name "Property1" -NewName "Property2"</code>+<sxh powershell>Rename-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Name "Property1" -NewName "Property2"</sxh>
  
 Aucun retour console. Aucun retour console.
Ligne 171: Ligne 177:
  
 Pour supprimer la valeur d'une propriété sans supprimer la propriété en question, la commande **Clear-ItemProperty** avec les paramètres //-Path// et //-Name// est là pour ça : Pour supprimer la valeur d'une propriété sans supprimer la propriété en question, la commande **Clear-ItemProperty** avec les paramètres //-Path// et //-Name// est là pour ça :
-<code:ps1>Clear-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Name "Property2"</code>+<sxh powershell>Clear-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Name "Property2"</sxh>
  
 Aucun retour console. Aucun retour console.
Ligne 177: Ligne 183:
  
 **Copy-ItemProperty** permet de copier une propriété (//-Name//) situé dans une clé (//-Path//) vers une nouvelle clé (//-Destination//) : **Copy-ItemProperty** permet de copier une propriété (//-Name//) situé dans une clé (//-Path//) vers une nouvelle clé (//-Destination//) :
-<code:ps1>Copy-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Name "Property2" -Destination "HKLM:\SOFTWARE\ShyrkaSystem\Test2"</code>+<sxh powershell>Copy-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Name "Property2" -Destination "HKLM:\SOFTWARE\ShyrkaSystem\Test2"</sxh>
  
 On ne peut pas se servir de cette commande pour dupliquer les propriétés dans une même clé. On ne peut pas se servir de cette commande pour dupliquer les propriétés dans une même clé.
Ligne 184: Ligne 190:
  
 Cette fois-ci, pour déplacer une propriété (//-Name//) de la clé d'origine (//-Path//) vers une nouvelle clé (//-Destination//), **Move-ItemProperty** sera utilisé : Cette fois-ci, pour déplacer une propriété (//-Name//) de la clé d'origine (//-Path//) vers une nouvelle clé (//-Destination//), **Move-ItemProperty** sera utilisé :
-<code:ps1>Move-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test2" -Name "Property2" -Destination "HKLM:\SOFTWARE\ShyrkaSystem\Test3"</code>+<sxh powershell>Move-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test2" -Name "Property2" -Destination "HKLM:\SOFTWARE\ShyrkaSystem\Test3"</sxh>
  
 Aucun retour console. Aucun retour console.
Ligne 190: Ligne 196:
  
 Finalement, pour supprimer une propriété, on utilisera **Remove-ItemProperty** suivi des paramètre //-Path// et //-Name// : Finalement, pour supprimer une propriété, on utilisera **Remove-ItemProperty** suivi des paramètre //-Path// et //-Name// :
-<code:ps1>Remove-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Name "Property2"</code>+<sxh powershell>Remove-ItemProperty -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test" -Name "Property2"</sxh>
  
 Aucun retour console. Aucun retour console.
- 
- --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2019/05/20 20:35// 
  
 ~~DISCUSSION~~ ~~DISCUSSION~~
  • powershell_registry.1558428729.txt.gz
  • Dernière modification : 2019/05/21 08:52
  • (modification externe)