Dans cet article, apprenez comment utiliser PowerShell pour obtenir une valeur de registre et interroger des entrées dans un registre en utilisant diverses méthodes.
Commençons !
Prérequis
Tous les exemples dans cet article seront démontrés à l’aide de PowerShell 7.1, qui, au moment de la publication de cet article, est la dernière version. Vous pouvez également utiliser Windows PowerShell 5.1 si vous le souhaitez. Vous devriez également avoir une compréhension de base des lecteurs PowerShell.
Certains exemples peuvent ne pas fonctionner sans privilèges d’administrateur.
Obtention des clés et des valeurs du registre avec Get-ChildItem
Une des façons les plus simples de trouver des clés et des valeurs de registre est d’utiliser la cmdlet Get-ChildItem
. Cela utilise PowerShell pour obtenir une valeur de registre et plus encore en énumérant des éléments dans les lecteurs PowerShell. Dans ce cas, ce lecteur PowerShell est le lecteur HKLM trouvé en exécutant Get-PSDrive
.
Exécutez la commande suivante dans une console PowerShell.
Sur la capture d’écran ci-dessous, vous pouvez voir :
- Le chemin complet de la clé de registre WindowsUpdate
- La clé AU
- La liste des entrées de registre dans la clé AU avec les valeurs correspondantes.

Un point rapide concernant la capture d’écran ci-dessus. Vous remarquerez peut-être que la sortie de la console PowerShell est un peu trompeuse. Normalement, la sortie de la console PowerShell représente les propriétés d’un objet. Get-ChildItem
se comporte différemment dans ce cas car cet objet n’a techniquement pas de propriétés. Des commandes supplémentaires sont exécutées en arrière-plan pour produire la mise en forme de l’affichage que vous voyez.
Connexe : Comment vérifier un redémarrage en attente dans le Registre Windows
Obtenir les valeurs du Registre avec Get-ItemProperty
En continuant avec la même clé de registre qu’auparavant, utilisons cette fois la cmdlet Get-ItemProperty
pour rendre la sortie plus lisible.
L’utilisation de Get-ItemProperty
est la meilleure pour obtenir une propriété d’élément en obtenant les clés et leurs valeurs dans le registre. Exécutez la commande ci-dessous :
Dans la capture d’écran ci-dessous, vous voyez une liste des clés et des valeurs :
- Pour le conteneur de registre AU
- Propriétés liées à PowerShell qui commencent toutes par PS

En alternative, vous pouvez également spécifier le chemin de l’élément de registre pour obtenir la même sortie légèrement plus rapidement en utilisant .NET. La commande ci-dessous utilise la classe Registre .NET dans PowerShell pour obtenir une valeur de registre :
Obtenir les valeurs du Registre avec Get-ItemPropertyValue
Maintenant, il est temps d’examiner les valeurs clés. En utilisant la cmdlet Get-ItemPropertyValue
avec le même conteneur de registre qu’auparavant, regardons la valeur de la clé NoAutoUpdate
. Exécutez la commande PowerShell suivante:
En utilisant Get-ItemPropertyValue
, vous obtiendrez une sortie plus concise ne montrant que la valeur et aucune des autres informations que vous avez vues précédemment.

Interrogation du Registre sans les lecteurs PS
Tout au long de ce tutoriel, vous avez utilisé les lecteurs PowerShell pour travailler avec le registre. Faire de cette façon n’est pas la seule façon; vous pouvez également tirer parti de .NET et obtenir des informations sur le registre via les classes .NET aussi!
Par exemple, peut-être avez-vous besoin d’utiliser PowerShell pour obtenir une valeur de registre de HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\ : AutoUpate sur un ordinateur distant.
Vous pouvez le faire avec .NET en:
- Ouvrant la connexion au registre sur l’ordinateur distant.
2. Ouvrir la clé de registre spécifique que vous recherchez.
3. Utiliser la méthode GetValue()
pour interroger la valeur de la valeur de registre à l’intérieur de la clé de registre.
Utiliser .NET plutôt que les lecteurs PowerShell est un peu plus rapide et est un moyen facile de se connecter et d’utiliser PowerShell pour interroger les clés de registre et les valeurs sur des ordinateurs distants.
Tester les valeurs du Registre avec Test-Path
Parfois, vous devez simplement valider si une valeur de registre est présente. La façon de le faire est avec la cmdlet Test-Path
.
Continuant avec le conteneur WindowsUpdate, testez si le conteneur AU est présent en exécutant la commande PowerShell suivante :
Si le résultat est True, la clé ou le conteneur existe. Mais que faire si vous devez tester si une valeur ou une entrée existe ? Construisons une fonction personnalisée pour ce test :
En utilisant la fonction personnalisée, vous saisissez un chemin et le nom de la clé ou du conteneur, ainsi que la valeur que vous recherchez, et la fonction personnalisée renverra True ou False (3) comme indiqué dans la capture d’écran ci-dessous :

Étapes suivantes
Sachez que vous pouvez utiliser les commandes Get-ChildItem
, Get-ItemProperty
et Get-ItemPropertyValue
dans PowerShell pour obtenir une valeur et des clés de registre, que pouvez-vous faire d’autre ?
Si vous souhaitez en savoir plus sur le travail avec le registre dans PowerShell, consultez l’article de Microsoft Docs intitulé « Working with Registry Keys ». Vous pouvez également trouver une excellente démonstration de la définition de valeurs de registre dans le billet de blog ATA Using Active Setup: How to Set a Registry Value in All Users Hives.
Source:
https://adamtheautomator.com/powershell-to-get-a-registry-value/