about_Registry_Provider

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

Ces informations s’appliquent uniquement à PowerShell s’exécutant sur Windows.

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 abordé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 sous la forme de 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 modifier votre emplacement sur le lecteur à l’aide de la HKLM: 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

Remarque

PowerShell utilise des alias pour vous permettre d’utiliser des chemins d’accès de fournisseur familiers. Les commandes telles que dir et ls sont désormais des alias pour Get-ChildItem, cd sont un alias pour Set-Location et pwd 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-virgules ::. 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 , ils sont appelés Propriétés d’élément. Une clé de Registre peut avoir à la fois des clés enfants et des propriétés d’élément.

Dans cet exemple, la différence entre Get-Item et Get-ChildItem s’affiche. Lorsque vous utilisez Get-Item la clé de Registre « Spooler », vous pouvez afficher ses propriétés.

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 sont pas affichées. L’applet Get-ChildItem de commande affiche 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 Get-ChildItem.

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 sur l’emplacement actuel. L’exemple suivant accède à la clé de Registre « Spooler » et obtient les propriétés de l’élément. Le point . est utilisé pour indiquer l’emplacement actuel.

cd 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 décrites 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 Get-ItemProperty de 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 le PSCustomObject. L’exemple suivant montre la différence de sortie lorsque vous utilisez le -Name paramètre.

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
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 du spouleur en manuel. L’exemple remplace StartType par Automatic à l’aide de l’applet de Set-Service commande.

Get-Service spooler | Select-Object Name, StartMode
Name    StartType
----    ---------
spooler Automatic
$path = "HKLM:\SYSTEM\CurrentControlSet\Services\Spooler\"
Set-ItemProperty -Path $path -Name Start -Value 3
Get-Service spooler | Select-Object Name, StartMode
Name    StartType
----    ---------
spooler    Manual
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 l’une ou Set-ItemPropertyl’autre Set-Item .

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 New-Item de commande en interne.

mkdir ContosoCompany
    Hive: HKEY_LOCAL_MACHINE\SOFTWARE

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

Vous pouvez utiliser l’applet New-ItemProperty de 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 $path -Name Test -Type DWORD -Value 1

Remarque

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

Pour obtenir une utilisation détaillée de l’applet de commande, consultez New-ItemProperty.

Copie des clés et des valeurs de Registre

Dans le fournisseur de Registre, utilisez l’applet Copy-Item de commande copie les clés et les valeurs du Registre. Utilisez l’applet Copy-ItemProperty de 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 « Serveur » 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 des clés et des valeurs de Registre

Les Move-Item applets de commande se Move-ItemProperty 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 d’accès 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 dossiers. Rename-Item renomme les clés de Registre, tandis que Rename-ItemProperty les valeurs de Registre sont renommées.

$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 commande et Set-Acl des Get-Acl applets de commande. L’exemple suivant ajoute un nouvel utilisateur avec un contrôle total à la clé de HKLM:\SOFTWARE\Contoso Registre.

$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 pour plus d’informations sur l’utilisation des applets de commande, consultez les articles suivants.

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

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

dir HKLM:\SOFTWARE\Contoso\
    Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Contoso

Name                           Property
----                           --------
ChildKey
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 demander d’invite, spécifiez le -Recurse paramètre.

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

Si vous souhaitez supprimer tous les éléments à l’intérieurHKLM:\SOFTWARE\Contoso, mais pas HKLM:\SOFTWARE\Contoso lui-même, utilisez une barre oblique \ inverse de fin suivie d’un caractère sauvage carte.

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

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

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 HKLM:\SOFTWARE\Contoso Registre. Pour effacer uniquement une propriété spécifique, utilisez Clear-ItemProperty.

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
Clear-Item .\Contoso\
Get-Item .\Contoso\
    Hive: HKEY_LOCAL_MACHINE\SOFTWARE

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

Pour plus d’exemples et pour plus d’informations 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 conçu sur l’applet de commande Set-ItemProperty . Il est également disponible sur l’applet de commande Set-Item dans les lecteurs de Registre, mais elle n’a aucun effet.

Valeur Description
String Spécifie une chaîne terminée par NULL. Utilisé pour les valeurs REG_SZ.
ExpandString Spécifie une chaîne terminée par null qui contient une valeur non expirée
références aux variables d’environnement qui sont développées lorsque
la valeur est récupérée. Utilisé pour REG_EXPAND_SZ valeurs.
Binary Spécifie des données binaires sous n'importe quelle forme. Utilisé pour REG_BINARY valeurs.
DWord Spécifie un nombre binaire de 32 bits. Utilisé pour REG_DWORD valeurs.
MultiString Spécifie un tableau de chaînes terminées par null terminées par
deux caractères Null. Utilisé pour REG_MULTI_SZ valeurs.
QWord Spécifie un nombre binaire 64 bits. Utilisé pour les valeurs REG_QWORD.
Unknown Indique un type de données de Registre non pris en charge, tel que
valeurs 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 du 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