Est-ce que quelqu'un sait comment lire les valeurs de clé de registre en PowerShell? La demande équivalente en CMD peut être vue sur l'image.
Réponses
Trop de publicités?Get-ChildItem est celui à utiliser, et un exemple rapide serait :
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion'
Plus d'exemples ici : https://msdn.microsoft.com/en-us/powershell/scripting/getting-started/cookbooks/working-with-registry-keys
Si vous souhaitez obtenir une valeur de clé spécifique :
$val = (Get-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName').ComputerName
Et comment définir/éditer de manière appropriée https://blogs.technet.microsoft.com/heyscriptingguy/2015/04/02/update-or-add-registry-key-value-with-powershell/
Get-ItemPropertyValue
Pour les opérations sur le registre, utilisez :
Get-ItemProperty
etGet-ItemPropertyValue
pour lire les valeurs et les données du registreGet-Item
pour obtenir les clés du registre et les sous-clés (mais pas pour lire les valeurs et les données du registre)Get-ChildItem
pour lister les sous-clés dans les clés et les ruches- Optionnellement, utilisez
New-PSDrive
pour créer des disques de registre (seuls HKCU et HKLM existent par défaut). Notez que vous pouvez également utiliser la forme longue sans monter (plus de détails ci-dessous)
Pour plus d'informations, consultez Fournisseur de registre.
Exemple
En utilisant votre exemple comme point de départ, qui utilise la clé racine du registre HKEY_USERS, je vais chercher la couleur de la Barre de menu, puisque la clé que vous aviez n'était pas disponible sur mon système.
CMD
reg query "HKEY_USERS\.DEFAULT\Control Panel\Colors" /v MenuBar
PowerShell
En utilisant Get-ItemPropertyValue
:
PS C:\> Get-ItemPropertyValue 'Registry::HKEY_USERS\.DEFAULT\Control Panel\Colors' -Name MenuBar
240 240 240
En utilisant Get-ItemProperty
:
PS C:\> (Get-ItemProperty 'Registry::HKEY_USERS\.DEFAULT\Control Panel\Colors').MenuBar
240 240 240
En utilisant New-PSDrive
pour monter HKEY_USERS en tant que HKU :
PS C:\> New-PSDrive -PSProvider Registry -Root HKEY_USERS -Name HKU
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
HKU Registry HKEY_USERS
PS C:\> Get-ItemPropertyValue 'HKU:\.DEFAULT\Control Panel\Colors' -Name MenuBar
240 240 240
PS C:\>
Documentation
Depuis Fournisseur de registre :
Le registre est divisé en clés, sous-clés et entrées. Pour plus d'informations sur la structure du registre, consultez Structure du registre.
Dans un disque Registry, chaque clé est un conteneur. Une clé peut contenir un nombre quelconque de clés. Une clé de registre qui a une clé parente est appelée sous-clé. Vous pouvez utiliser
Get-ChildItem
pour voir les clés de registre etSet-Location
pour naviguer vers un chemin de clé.Les valeurs de registre sont des attributs d'une clé de registre. Dans le disque Registry, ils sont appelés Propriétés d'élément. Une clé de registre peut contenir à la fois des clés enfants et des propriétés d'éléments.
...
Chaque clé de registre peut également avoir des sous-clés. Lorsque vous utilisez Get-Item sur une clé de registre, les sous-clés ne sont pas affichées. La cmdlet
Get-ChildItem
vous montrera les éléments enfants de la clé "Spooler", y compris les propriétés de chaque sous-clé. Les propriétés des clés parentes ne sont pas affichées lors de l'utilisation deGet-ChildItem
.
Depuis Get-Item :
Cette commande affiche le contenu de la clé de registre Microsoft.PowerShell. Vous pouvez utiliser cette cmdlet avec le fournisseur de registre PowerShell pour obtenir des clés de registre et des sous-clés, mais vous devez utiliser la cmdlet
Get-ItemProperty
pour obtenir les valeurs et les données du registre.