Obtenir la valeur d'une clé de registre à l'aide de PowerShell

Marion Paul Kenneth Mendoza 30 janvier 2023
  1. Qu’est-ce qu’une clé de registre
  2. Sauvegarde des clés de registre dans PowerShell
  3. Obtenir une valeur d’une clé de registre à l’aide de la cmdlet Get-ItemProperty dans PowerShell
  4. Obtenir une valeur d’une clé de registre à l’aide de la cmdlet Get-ItemPropertyValue dans PowerShell
Obtenir la valeur d'une clé de registre à l'aide de PowerShell

Il existe des cas où la correction d’erreurs, la modification de fonctionnalités Windows ou la désinstallation complète d’un logiciel ou d’un produit vous obligent à modifier le registre Windows.

Bien que l’utilisation de l’Éditeur du Registre puisse être pratique, une erreur peut toujours se produire lorsque nous ne sommes pas assez prudents. La modification du registre est très délicate et votre système local en dépend.

Cet article vous montrera comment obtenir en toute sécurité des valeurs de clé de registre à l’aide de Windows PowerShell.

Qu’est-ce qu’une clé de registre

Une clé de registre peut être considérée un peu comme un dossier de fichiers structuré, mais elle n’existe que dans le registre Windows.

De plus, les clés de registre peuvent également contenir des valeurs de registre, tout comme les dossiers contiennent des fichiers. Les clés de registre peuvent également inclure d’autres clés de registre, généralement appelées sous-clés.

Comme mentionné, le registre Windows est structuré, les clés de registre les plus hautes étant appelées ruches de registre. Celles-ci sont considérées comme des clés de registre spéciales avec des autorisations spéciales, mais elles ont toujours la même fonction essentielle qu’une clé de registre standard.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft

Si nous reprenons l’exemple ci-dessus, HKEY_LOCAL_MACHINE ou HKLM pour faire court, est le haut du chemin du registre. La clé de registre SOFTWARE lui succède alors, et comme mentionné, les clés de registre peuvent contenir plus de clés que nous appelons des sous-clés telles que Microsoft.

Sauvegarde des clés de registre dans PowerShell

Il est sage de sauvegarder notre registre avant d’apporter des modifications. Comme mentionné, toute modification accidentelle dans le registre peut entraîner une erreur dans vos fichiers, logiciels ou, pire encore, dans l’ensemble du système d’exploitation.

Cependant, avec une copie des clés que vous modifiez, vous pouvez vous sentir à l’aise en sachant que vous pouvez annuler toutes les modifications qui pourraient entraîner des problèmes dans votre système d’exploitation.

Nous pouvons utiliser les anciennes commandes reg export pour sauvegarder rapidement votre registre. Par exemple, la syntaxe ci-dessous sauvegardera l’intégralité du registre HKLM.

reg export HKLM C:\RegBack\HKLM.Reg /y

Vos clés de registre sauvegardées seront exportées dans un format de fichier .REG. Par conséquent, vous pouvez restaurer rapidement les clés de registre sauvegardées en double-cliquant sur le fichier de registre et en suivant les invites.

Obtenir une valeur d’une clé de registre à l’aide de la cmdlet Get-ItemProperty dans PowerShell

Le Get-ItemProperty est une cmdlet PowerShell utilisée pour renvoyer les entrées de registre dans un format plus lisible que sa commande relative Get-Item. Nous pouvons également obtenir la valeur d’une clé de registre spécifique à l’aide de la cmdlet Get-ItemProperty.

Exemple de code :

$registryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion"

Get-ItemProperty -Path $registryPath -Name ProgramFilesDir

Production :

ProgramFilesDir : C:\Program Files
PSPath          : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Micr
                  osoft\Windows\CurrentVersion
PSParentPath    : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Micr
                  osoft\Windows
PSChildName     : CurrentVersion
PSDrive         : HKLM
PSProvider      : Microsoft.PowerShell.Core\Registry
Remarque
Assurez-vous de mettre le chemin du registre entre guillemets ("") car certains chemins du registre contiennent des espaces. Mettre le chemin entre guillemets doubles prendra l’expression littérale dudit chemin et n’entraînera pas d’erreur.

La commande crée un objet PSCustomObject avec PsPath, PsParentPath, PsChildname, PSDrive, PSProvider et une autre propriété nommée d’après le nom de la valeur de la clé.

Ainsi, pour afficher uniquement la valeur réelle de la clé de registre, nous pouvons appeler la propriété key value name dans notre script.

Exemple de code :

$registryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion"

$keyValue = Get-ItemProperty -Path $registryPath -Name ProgramFilesDir

$keyValue.ProgramFilesDir

Production :

C:\Program Files

La commande Get-ItemProperty fonctionne sur les versions 2 à 5 de PowerShell. Cependant, dans Windows PowerShell 5, Microsoft a introduit une nouvelle cmdlet qui simplifie considérablement l’impression des clés de registre dans la ligne de commande.

Obtenir une valeur d’une clé de registre à l’aide de la cmdlet Get-ItemPropertyValue dans PowerShell

Comme mentionné, la cmdlet Get-ItemPropertyValue est introduite dans Windows PowerShell version 5 pour répondre à la requête d’obtention de la valeur des clés de registre d’une manière beaucoup plus courte et plus simple.

la cmdlet ne prend que deux paramètres pour fonctionner : le chemin du fichier de registre et la clé de registre qui doit être interrogée pour une valeur.

Exemple de code :

Get-ItemPropertyValue 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion' 'ProgramFilesDir'

Production :

C:\Program Files
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn