about_Registry_Provider
Nom du fournisseur
Registre
Lecteurs
HKLM:
, HKCU:
Capabilities
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 valeurs du Registre ne sont pas des composants de cette hiérarchie. Au lieu de cela, elles sont des propriétés de chacune des clés.
Le fournisseur de Registre prend en charge les applets de commande suivantes :
- Get-Location
- Set-Location
- Get-Item
- Get-ChildItem
- Invoke-Item
- Move-Item
- New-Item
- Remove-Item
- Clear-ItemProperty
- Get-ItemProperty
- New-ItemProperty
- Remove-ItemProperty
- Set-ItemProperty
- Get-Acl
- Set-Acl
Types exposés par ce fournisseur
Le fournisseur de Registre retourne des données de Registre dans l’un des deux types suivants :
- Microsoft.Win32.RegistryKey pour les clés de Registre
- PSCustomObject pour les valeurs de Registre
Navigation dans les lecteurs de Registre
Le fournisseur de Registre expose son magasin de données sous la forme de deux lecteurs par défaut.
HKLM:
mappe à la ruche duHKEY_LOCAL_MACHINE
RegistreHKCU:
mappe à la ruche duHKEY_CURRENT_USER
Registre
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 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 HKLM
de 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
une clé de Registre, les sous-clés ne sont pas affichées. L’applet Get-ChildItem
de commande affiche les sous-clés 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.
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 les valeurs de Registre associées à une clé de Registre. L’exemple suivant utilise Set-ItemProperty
pour modifier le type de démarrage du service du spouleur en manuel. L’exemple montre comment revenir au StartType à 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 d’une default
clé de Registre avec l’une ou l’autre Set-Item
Set-ItemProperty
des valeurs .
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 de nouvelles 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 HKLM:\Software\Fabrikam
spécifié.
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 Remove-Item
de . Vous êtes invité à confirmer la suppression si l’élément contient 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 wasn't 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érieur 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 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.
String
– Utilisé pour les valeurs REG_SZ. Passez un objet[System.String]
au paramètre Value.ExpandString
– Utilisé pour les valeurs REG_EXPAND_SZ. Passez un objet[System.String]
au paramètre Value. La chaîne doit contenir des références non développées à des variables d’environnement qui sont développées quand la valeur est récupérée.Binary
– Utilisé pour les valeurs REG_BINARY. Passez un objet[System.Byte[]]
au paramètre Value.DWord
– Utilisé pour les valeurs REG_DWORD. Passez un objet[System.Int32]
au paramètre Value.MultiString
– Utilisé pour les valeurs REG_MULTI_SZ. Passez un objet[System.String[]]
au paramètre Value.QWord
– Utilisé pour les valeurs REG_QWORD. Passez un objet[System.Int64]
au paramètre Value.Unknown
: indique un type de données de Registre non pris en charge, tel que des valeurs REG_RESOURCE_LIST.
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: