Partager via


Fournisseur de registre

Nom du fournisseur

Registre

Lecteurs

HKLM:, HKCU:

Fonctionnalités

ShouldProcess, UseTransactions

Description courte

Fournit l’accès aux clés, entrées et valeurs de Registre dans PowerShell.

Description détaillée

Le fournisseur de Registre PowerShell vous permet d’obtenir, d’ajouter, de modifier, d’effacer et de supprimer des clés de Registre, des entrées et des valeurs dans PowerShell.

Les lecteurs de Registre sont un espace de noms hiérarchique contenant les clés de Registre et les sous-clés de votre ordinateur. Les entrées et les valeurs de Registre ne sont pas des composants de cette hiérarchie. Ce sont en fait des propriétés de chacune des clés.

Le fournisseur de Registre prend en charge les applets de commande suivantes, qui sont traitées dans cet article.

Types exposés par ce fournisseur

Les clés de Registre sont représentées en tant qu’instances de la classe Microsoft.Win32.RegistryKey . Les entrées de Registre sont représentées en tant qu’instances de la classe PSCustomObject .

Le fournisseur de Registre expose son magasin de données en tant que deux lecteurs par défaut. L’emplacement du Registre HKEY_LOCAL_MACHINE est mappé au HKLM: lecteur et HKEY_CURRENT_USER est mappé au HKCU: lecteur. Pour utiliser le Registre, vous pouvez remplacer votre emplacement par le lecteur à l’aide HKLM: de la commande suivante.

Set-Location HKLM:

Pour revenir à un lecteur du système de fichiers, tapez le nom du lecteur. Par exemple, entrez :

Set-Location C:

Vous pouvez également utiliser le fournisseur de registre à partir de n’importe quel autre lecteur PowerShell. Pour référencer une clé de Registre à partir d’un autre emplacement, utilisez le nom du lecteur (HKLM:, HKCU:) dans le chemin d’accès. Utilisez une barre oblique inverse (\) ou une barre oblique (/) pour indiquer un niveau du lecteur de Registre .

PS C:\> cd HKLM:\Software

Notes

PowerShell utilise des alias pour vous permettre d’utiliser les chemins d’accès du fournisseur. Les commandes telles que dir et ls sont désormais des alias pour Get-ChildItem, cd est un alias pour Set-Location et pwd est un alias pour Get-Location.

Ce dernier exemple montre une autre syntaxe de chemin d’accès que vous pouvez utiliser pour naviguer dans le fournisseur de registre . Cette syntaxe utilise le nom du fournisseur, suivi de deux-points ::. Cette syntaxe vous permet d’utiliser le nom HIVE complet, au lieu du nom HKLMde lecteur mappé.

cd "Registry::HKEY_LOCAL_MACHINE\Software"

Affichage du contenu des clés 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 lecteur de Registre , chaque clé est un conteneur. Une clé peut contenir n’importe quel nombre de clés. Une clé de Registre qui a une clé parente est appelée sous-clé. Vous pouvez utiliser Get-ChildItem pour afficher les clés de Registre et Set-Location accéder à un chemin de clé.

Les valeurs de Registre sont des attributs d’une clé de Registre. Dans le lecteur de Registre , elles sont appelées Propriétés de l’élément. Une clé de Registre peut avoir des clés enfants et des propriétés d’élément.

Dans cet exemple, la différence entre Get-Item et Get-ChildItem est illustrée. Lorsque vous utilisez Get-Item sur la clé de Registre « Spouleur », vous pouvez afficher ses propriétés.

PS C:\ > Get-Item -Path HKLM:\SYSTEM\CurrentControlSet\Services\Spooler


    Hive: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services


Name        Property
----        --------
Spooler     DependOnService    : {RPCSS, http}
            Description        : @%systemroot%\system32\spoolsv.exe,-2
            DisplayName        : @%systemroot%\system32\spoolsv.exe,-1
            ErrorControl       : 1
            FailureActions     : {16, 14, 0, 0...}
            Group              : SpoolerGroup
            ImagePath          : C:\WINDOWS\System32\spoolsv.exe
            ObjectName         : LocalSystem
            RequiredPrivileges : {SeTcbPrivilege, SeImpersonatePrivilege, ...
            ServiceSidType     : 1
            Start              : 2
            Type               : 27

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 s’affichent pas. L’applet Get-ChildItem de commande affiche les éléments enfants de la clé « Spouleur », 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.

PS C:\> Get-ChildItem -Path HKLM:\SYSTEM\CurrentControlSet\Services\Spooler


    Hive: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler


Name             Property
----             --------
Performance      Close           : PerfClose
                 Collect         : PerfCollect
                 Collect Timeout : 2000
                 Library         : C:\Windows\System32\winspool.drv
                 Object List     : 1450
                 Open            : PerfOpen
                 Open Timeout    : 4000
Security         Security : {1, 0, 20, 128...}

L’applet Get-Item de commande peut également être utilisée à l’emplacement actuel. L’exemple suivant accède à la clé de Registre « Spouleur » et obtient les propriétés de l’élément. Le point . est utilisé pour indiquer l’emplacement actuel.

PS C:\> cd HKLM:\System\CurrentControlSet\Services\Spooler
PS HKLM:\SYSTEM\CurrentControlSet\Services\Spooler> Get-Item .

    Hive: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

Name             Property
----             --------
Spooler          DependOnService    : {RPCSS, http}
                 Description        : @%systemroot%\system32\spoolsv.exe,-2
...

Pour plus d’informations sur les applets de commande traitées dans cette section, consultez les articles suivants.

-Get-Item -Get-ChildItem

Affichage des valeurs de clé de Registre

Les valeurs de clé de Registre sont stockées en tant que propriétés de chaque clé de Registre. L’applet Get-ItemProperty de commande affiche les propriétés de clé de Registre à l’aide du nom que vous spécifiez. Le résultat est un PSCustomObject contenant les propriétés que vous spécifiez.

L’exemple suivant utilise l’applet de Get-ItemProperty commande pour afficher toutes les propriétés. Le stockage de l’objet résultant dans une variable vous permet d’accéder à la valeur de propriété souhaitée.

$p = Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\Spooler
$p.DependOnService
RPCSS
http

La spécification d’une valeur pour le -Name paramètre sélectionne les propriétés que vous spécifiez et retourne l’objet PSCustomObject. L’exemple suivant montre la différence de sortie lorsque vous utilisez le -Name paramètre .

PS C:\> Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Wbem

BUILD                      : 17134.1
Installation Directory     : C:\WINDOWS\system32\WBEM
MOF Self-Install Directory : C:\WINDOWS\system32\WBEM\MOF
PSPath                     : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wbem
PSParentPath               : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
PSChildName                : Wbem
PSDrive                    : HKLM
PSProvider                 : Microsoft.PowerShell.Core\Registry

PS C:\> Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Wbem -Name BUILD

BUILD        : 17134.1
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wbem
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
PSChildName  : Wbem
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry

À compter de PowerShell 5.0, l’applet Get-ItemPropertyValue de commande retourne uniquement la valeur de la propriété que vous spécifiez.

Get-ItemPropertyValue -Path HKLM:\SOFTWARE\Microsoft\Wbem -Name BUILD
17134.1

Pour plus d’informations sur les applets de commande utilisées dans cette section, consultez les articles suivants.

Modification des valeurs de clé de Registre

L’applet Set-ItemProperty de commande définit des attributs pour les clés de Registre. L’exemple suivant utilise Set-ItemProperty pour modifier le type de démarrage du service spouleur en manuel. L’exemple remplace startType par Automatique à l’aide de l’applet de Set-Service commande .

PS C:\> Get-Service spooler | Select-Object Name, StartMode

Name    StartType
----    ---------
spooler Automatic

PS C:\> $path = "HKLM:\SYSTEM\CurrentControlSet\Services\Spooler\"
PS C:\> Set-ItemProperty -Path $path -Name Start -Value 3
PS C:\> Get-Service spooler | Select-Object Name, StartMode

Name    StartType
----    ---------
spooler    Manual

PS C:\> Set-Service -Name Spooler -StartupType Automatic

Chaque clé de Registre a une valeur par défaut . Vous pouvez modifier la valeur par défaut d’une clé de Registre avec Set-Item ou Set-ItemProperty.

Set-ItemProperty -Path HKLM:\SOFTWARE\Contoso -Name "(default)" -Value "one"
Set-Item -Path HKLM:\SOFTWARE\Contoso -Value "two"

Pour plus d’informations sur les applets de commande utilisées dans cette section, consultez les articles suivants.

Création de clés et de valeurs de Registre

L’applet New-Item de commande crée des clés de Registre avec un nom que vous fournissez. Vous pouvez également utiliser la mkdir fonction , qui appelle l’applet de New-Item commande en interne.

PS HKLM:\SOFTWARE\> mkdir ContosoCompany

    Hive: HKEY_LOCAL_MACHINE\SOFTWARE

Name                           Property
----                           --------
ContosoCompany

Vous pouvez utiliser l’applet de New-ItemProperty commande pour créer des valeurs dans une clé de Registre que vous spécifiez. L’exemple suivant crée une valeur DWORD sur la clé de Registre ContosoCompany.

$path = "HKLM:\SOFTWARE\ContosoCompany"
New-ItemProperty -Path  -Name Test -Type DWORD -Value 1

Notes

Consultez la section paramètres dynamiques de cet article pour connaître d’autres valeurs de type autorisées.

Pour obtenir des informations détaillées sur l’utilisation des applets de commande, consultez New-ItemProperty.

Copie de clés et de valeurs de Registre

Dans le fournisseur de Registre , utilisez l’applet de commande qui copie les Copy-Item clés et les valeurs du Registre. Utilisez l’applet de Copy-ItemProperty commande pour copier uniquement les valeurs du Registre. La commande suivante copie la clé de Registre « Contoso » et ses propriétés à l’emplacement spécifié « HKLM :\Software\Fabrikam ».

Copy-Item crée la clé de destination si elle n’existe pas. Si la clé de destination existe, Copy-Item crée un doublon de la clé source en tant qu’élément enfant (sous-clé) de la clé de destination.

Copy-Item -Path  HKLM:\Software\Contoso -Destination HKLM:\Software\Fabrikam

La commande suivante utilise l’applet Copy-ItemProperty de commande pour copier la valeur « Server » de la clé « Contoso » vers la clé « Fabrikam ».

$source = "HKLM:\SOFTWARE\Contoso"
$dest = "HKLM:\SOFTWARE\Fabrikam"
Copy-ItemProperty -Path $source -Destination $dest -Name Server

Pour plus d’informations sur les applets de commande utilisées dans cette section, consultez les articles suivants.

Déplacement de clés et de valeurs de Registre

Les Move-Item applets de commande et Move-ItemProperty se comportent comme leurs équivalents « Copier ». Si la destination existe, Move-Item déplace la clé source sous la clé de destination. Si la clé de destination n’existe pas, la clé source est déplacée vers le chemin de destination.

La commande suivante déplace la clé « Contoso » vers le chemin « HKLM :\SOFTWARE\Fabrikam ».

Move-Item -Path HKLM:\SOFTWARE\Contoso -Destination HKLM:\SOFTWARE\Fabrikam

Cette commande déplace toutes les propriétés de « HKLM :\SOFTWARE\ContosoCompany » vers « HKLM :\SOFTWARE\Fabrikam ».

$source = "HKLM:\SOFTWARE\Contoso"
$dest = "HKLM:\SOFTWARE\Fabrikam"
Move-ItemProperty -Path $source -Destination $dest -Name *

Pour plus d’informations sur les applets de commande utilisées dans cette section, consultez les articles suivants.

Renommage des clés et des valeurs de Registre

Vous pouvez renommer des clés et des valeurs de Registre comme vous le feriez pour les fichiers et les dossiers. Rename-Item renomme les clés de Registre, tandis que Rename-ItemProperty renomme les valeurs du Registre.

$path = "HKLM:\SOFTWARE\Contoso"
Rename-ItemProperty -Path $path -Name ContosoTest -NewName FabrikamTest
Rename-Item -Path $path -NewName Fabrikam

Modification des descripteurs de sécurité

Vous pouvez restreindre l’accès aux clés de Registre à l’aide des applets de Get-Acl commande et Set-Acl . L’exemple suivant ajoute un nouvel utilisateur avec un contrôle total à la clé de Registre « HKLM :\SOFTWARE\Contoso ».

$acl = Get-Acl -Path HKLM:\SOFTWARE\Contoso
$rule = New-Object System.Security.AccessControl.RegistryAccessRule `
("CONTOSO\jsmith", "FullControl", "Allow")
$acl.SetAccessRule($rule)
$acl | Set-Acl -Path HKLM:\SOFTWARE\Contoso

Pour plus d’exemples et de détails sur l’utilisation des applets de commande, consultez les articles suivants.

Suppression et suppression des clés et des valeurs de Registre

Vous pouvez supprimer des éléments contenus à l’aide de Remove-Item, mais vous serez invité à confirmer la suppression si l’élément contient autre chose. L’exemple suivant tente de supprimer une clé « HKLM :\SOFTWARE\Contoso ».

PS C:\> dir HKLM:\SOFTWARE\Contoso\

    Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Contoso

Name                           Property
----                           --------
ChildKey

PS C:\> Remove-Item -Path HKLM:\SOFTWARE\Contoso

Confirm
The item at HKLM:\SOFTWARE\Contoso has children and the -Recurse
parameter was not specified. If you continue, all children will be removed
with the item. Are you sure you want to continue?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):

Pour supprimer des éléments contenus sans invite, spécifiez le -Recurse paramètre .

Remove-Item -Path HKLM:\SOFTWARE\Contoso -Recurse

Si vous souhaitez supprimer tous les éléments dans « HKLM :\SOFTWARE\Contoso », mais pas « HKLM :\SOFTWARE\Contoso » lui-même, utilisez une barre oblique inverse \ de fin suivie d’un caractère générique.

Remove-Item -Path HKLM:\SOFTWARE\Contoso\* -Recurse

Cette commande supprime la valeur de Registre « ContosoTest » de la clé de Registre « HKLM :\SOFTWARE\Contoso ».

Remove-ItemProperty -Path HKLM:\SOFTWARE\Contoso -Name ContosoTest

Clear-Item efface toutes les valeurs de Registre d’une clé. L’exemple suivant efface toutes les valeurs de la clé de Registre « HKLM :\SOFTWARE\Contoso ». Pour effacer uniquement une propriété spécifique, utilisez Clear-ItemProperty.

PS HKLM:\SOFTWARE\> Get-Item .\Contoso\

    Hive: HKEY_LOCAL_MACHINE\SOFTWARE

Name           Property
----           --------
Contoso        Server     : {a, b, c}
               HereString : {This is text which contains
               newlines. It also contains "quoted" strings}
               (default)  : 1

PS HKLM:\SOFTWARE\> Clear-Item .\Contoso\
PS HKLM:\SOFTWARE\> Get-Item .\Contoso\

    Hive: HKEY_LOCAL_MACHINE\SOFTWARE

Name                           Property
----                           --------
Contoso

Pour plus d’exemples et de détails sur l’utilisation des applets de commande, consultez les articles suivants.

Paramètres dynamiques

Les paramètres dynamiques sont des paramètres d’applet de commande qui sont ajoutés par un fournisseur PowerShell et sont disponibles uniquement lorsque l’applet de commande est utilisée dans le lecteur avec le fournisseur.

Tapez <Microsoft.Win32.RegistryValueKind>

Établit ou change le type de données d'une valeur de Registre. La valeur par défaut est String (REG_SZ).

Ce paramètre fonctionne comme prévu sur l'applet de commande Set-ItemProperty. Il est également disponible sur l'applet de commande Set-Item dans les lecteurs de Registre, mais il n'a pas effet.

Valeur Description
String Spécifie une chaîne terminée par NULL. Équivalent à REG_SZ.
ExpandString Spécifie une chaîne terminée par null qui contient une valeur non expirée
références à des variables d’environnement qui sont développées lorsque
la valeur est récupérée. Équivalent à REG_EXPAND_SZ.
Binary Spécifie des données binaires sous n'importe quelle forme. Équivalent à REG_BINARY.
DWord Spécifie un nombre binaire de 32 bits. Équivalent à REG_DWORD.
MultiString Spécifie un tableau de chaînes terminées par null terminées par
deux caractères null. Équivalent à REG_MULTI_SZ.
QWord Spécifie un nombre binaire 64 bits. Équivalent à REG_DWORD.
Unknown Indique un type de données de Registre non pris en charge, tel que
REG_RESOURCE_LIST.

Applets de commande prises en charge

Utilisation du pipeline

Les applets de commande du fournisseur acceptent l’entrée de pipeline. Vous pouvez utiliser le pipeline pour simplifier la tâche en envoyant des données de fournisseur d’une applet de commande à une autre applet de commande de fournisseur. Pour en savoir plus sur l’utilisation du pipeline avec des applets de commande de fournisseur, consultez les références d’applet de commande fournies dans cet article.

Obtenir de l’aide

Depuis Windows PowerShell 3.0, vous pouvez obtenir des rubriques d'aide personnalisées pour les applets de commande du fournisseur, qui expliquent comment ces applets de commande se comportent dans un lecteur du système de fichiers.

Pour obtenir les rubriques d’aide personnalisées pour le lecteur de système de fichiers, exécutez une Get-Help commande dans un lecteur de système de fichiers ou utilisez le paramètre Path pour spécifier un lecteur de système de fichiers.

Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path HKLM:

Voir aussi

about_Providers