8 votes

Comment lire les valeurs des clés de registre?

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.

équivalent en CMD

8voto

mmucklo Points 348

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/

5voto

g4v4g4i Points 16

Get-ItemPropertyValue

Pour les opérations sur le registre, utilisez :

  • Get-ItemProperty et Get-ItemPropertyValue pour lire les valeurs et les données du registre
  • Get-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 et Set-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 de Get-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.

1voto

Luke Peters Points 11

Ce format, bien que très similaire, peut également être utilisé :

$username = Get-ItemProperty -path "HKCU:\Volatile Environment"

Qui crée un objet. Les propriétés peuvent être appelées en utilisant :

$username.username

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X