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:11] – [Copier une clé] nekanpowershell_registry [2021/03/05 15:57] (Version actuelle) nekan
Ligne 1: Ligne 1:
 ====== 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//
-{{ :underconstruction-copy-300x150.jpg |}}+
  
 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 perte 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 27: Ligne 26:
 ===== Gestion des clés ===== ===== Gestion des clés =====
  
-Les clés sont gérées avec les commandes de type //Verb//-Item. La commande Get-ChildItem peut aussi avoir sont utilité.+Les clés sont gérées avec les commandes de type //Verb//-Item. La commande Get-ChildItem peut aussi avoir son utilité.
   * 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.
 ==== Déplacer une clé ==== ==== Déplacer une clé ====
  
 +Utiliser la commande **Move-Item** permet de déplacer une clé définie par son chemin (//-Path//) vers une autre chemin (//-Destination//) :
 +<sxh powershell>Move-Item -Path "HKLM:\SOFTWARE\ShyrkaSystem\Test2" -Destination "HKLM:\SOFTWARE\ShyrkaSystemTemp"</sxh>
 +
 +Aucun retour console.
 ==== Supprimer une clé ==== ==== Supprimer une clé ====
  
 +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 :
 +<sxh powershell>Remove-Item -Path "HKLM:\SOFTWARE\ShyrkaSystemTemp" -Recurse</sxh>
 +
 +Aucun retour console.
 ==== Lister les clés ==== ==== Lister les clés ====
  
 +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é :
 +<sxh powershell>Get-ChildItem -Path "HKLM:\SOFTWARE\ShyrkaSystem"</sxh>
  
 +Ce qui renvoie dans la console :
 +<sxh powershell>Name                           Property
 +----                           --------
 +Test                           Property1 : Value1
 +                               Property2 : 10
 +Test2                          QW : 5411 </sxh>
 +                               
 +Alors que :
 +<sxh powershell>Get-Item -Path "HKLM:\SOFTWARE\ShyrkaSystem"</sxh>
 +Renvoie :
 +<sxh powershell>Name                           Property
 +----                           --------
 +ShyrkaSystem                   bin : 0 </sxh>
 ===== Gestion des propriétés ===== ===== Gestion des propriétés =====
  
Ligne 94: 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 107: 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 142: 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 148: 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 154: 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 161: 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 167: 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.1558426260.txt.gz
  • Dernière modification : 2019/05/21 08:11
  • (modification externe)