Obtenir la valeur d'une clé de registre à l'aide de PowerShell
- Qu’est-ce qu’une clé de registre
- Sauvegarde des clés de registre dans PowerShell
-
Obtenir une valeur d’une clé de registre à l’aide de la cmdlet
Get-ItemProperty
dans PowerShell -
Obtenir une valeur d’une clé de registre à l’aide de la cmdlet
Get-ItemPropertyValue
dans 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
""
) 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 specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn