Delen via


about_Registry_Provider

Providernaam

Register

Aandrijfeenheden

HKLM:, HKCU:

Functies

ShouldProcess, UseTransactions

Korte beschrijving

Biedt toegang tot de registersleutels, vermeldingen en waarden in PowerShell.

Gedetailleerde beschrijving

Deze informatie is alleen van toepassing op PowerShell in Windows.

Met de PowerShell-registerprovider kunt u registersleutels, vermeldingen en waarden ophalen, toevoegen, wijzigen, wissen en verwijderen in PowerShell.

De registerstations zijn een hiërarchische naamruimte met de registersleutels en subsleutels op uw computer. Registervermeldingen en -waarden zijn geen onderdelen van die hiërarchie. In plaats daarvan zijn het eigenschappen van elk van de sleutels.

De registerprovider ondersteunt de volgende cmdlets, die in dit artikel worden behandeld.

Typen die door deze provider worden weergegeven

Registersleutels worden weergegeven als exemplaren van de klasse Microsoft.Win32.RegistryKey . Registervermeldingen worden weergegeven als exemplaren van de klasse PSCustomObject .

De registerprovider stelt het gegevensarchief beschikbaar als twee standaardstations. De registerlocatie HKEY_LOCAL_MACHINE is toegewezen aan het HKLM: station en HKEY_CURRENT_USER wordt toegewezen aan het HKCU: station. Als u met het register wilt werken, kunt u uw locatie naar het HKLM: station wijzigen met behulp van de volgende opdracht.

Set-Location HKLM:

Als u wilt terugkeren naar een bestandssysteemstation, typt u de naam van het station. Typ bijvoorbeeld:

Set-Location C:

U kunt ook met de registerprovider werken vanaf elk ander PowerShell-station. Als u wilt verwijzen naar een registersleutel vanaf een andere locatie, gebruikt u de naam van het station (HKLM:, HKCU:) in het pad. Gebruik een backslash (\) of een slash (/) om een niveau van het registerstation aan te geven.

PS C:\> cd HKLM:\Software

Notitie

PowerShell maakt gebruik van aliassen, zodat u op een vertrouwde manier met providerpaden kunt werken. Opdrachten zoals dir en ls zijn nu aliassen voor Get-ChildItem, cd is een alias voor Set-Location en pwd is een alias voor Get-Location.

In dit laatste voorbeeld ziet u een andere padsyntaxis die u kunt gebruiken om door de registerprovider te navigeren. Deze syntaxis maakt gebruik van de providernaam, gevolgd door twee dubbele punten ::. Met deze syntaxis kunt u de volledige HIVE-naam gebruiken in plaats van de naam van het toegewezen station HKLM.

cd "Registry::HKEY_LOCAL_MACHINE\Software"

De inhoud van registersleutels weergeven

Het register is onderverdeeld in sleutels, subsleutels en vermeldingen. Zie Structuur van het register voor meer informatie over de registerstructuur.

In een registerstation is elke sleutel een container. Een sleutel kan een willekeurig aantal sleutels bevatten. Een registersleutel met een bovenliggende sleutel wordt een subsleutel genoemd. U kunt gebruiken Get-ChildItem om registersleutels weer te geven en Set-Location om naar een sleutelpad te navigeren.

Registerwaarden zijn kenmerken van een registersleutel. In het registerstation heten ze Itemeigenschappen. Een registersleutel kan zowel onderliggende sleutels als itemeigenschappen hebben.

In dit voorbeeld wordt het verschil tussen Get-Item en Get-ChildItem weergegeven. Wanneer u de registersleutel 'Spooler' gebruikt Get-Item , kunt u de eigenschappen ervan bekijken.

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

Elke registersleutel kan ook subsleutels hebben. Wanneer u op een registersleutel gebruikt Get-Item , worden de subsleutels niet weergegeven. De Get-ChildItem cmdlet toont onderliggende items van de Spooler-sleutel, inclusief de eigenschappen van elke subsleutel. De eigenschappen van de bovenliggende sleutels worden niet weergegeven wanneer u gebruikt 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...}

De Get-Item cmdlet kan ook worden gebruikt op de huidige locatie. In het volgende voorbeeld wordt naar de registersleutel 'Spooler' genavigeert en worden de itemeigenschappen opgehaald. De punt . wordt gebruikt om de huidige locatie aan te geven.

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
...

Zie de volgende artikelen voor meer informatie over de cmdlets die in deze sectie worden behandeld.

-Get-Item -Get-ChildItem

Registersleutelwaarden weergeven

Registersleutelwaarden worden opgeslagen als eigenschappen van elke registersleutel. De Get-ItemProperty cmdlet geeft registersleuteleigenschappen weer met behulp van de naam die u opgeeft. Het resultaat is een PSCustomObject met de eigenschappen die u opgeeft.

In het volgende voorbeeld wordt de Get-ItemProperty cmdlet gebruikt om alle eigenschappen weer te geven. Door het resulterende object op te slaan in een variabele, hebt u toegang tot de gewenste eigenschapswaarde.

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

Als u een waarde voor de -Name parameter opgeeft, selecteert u de eigenschappen die u opgeeft en retourneert het PSCustomObject. In het volgende voorbeeld ziet u het verschil in uitvoer wanneer u de -Name parameter gebruikt.

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

Vanaf PowerShell 5.0 retourneert de Get-ItemPropertyValue cmdlet alleen de waarde van de eigenschap die u opgeeft.

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

Zie de volgende artikelen voor meer informatie over de cmdlets die in deze sectie worden gebruikt.

Registersleutelwaarden wijzigen

De Set-ItemProperty cmdlet stelt kenmerken in voor registersleutels. In het volgende voorbeeld wordt gebruikt Set-ItemProperty om het starttype van de spooler-service te wijzigen in handmatig. In het voorbeeld wordt StartType weer gewijzigd in Automatisch met behulp van de Set-Service cmdlet.

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

Elke registersleutel heeft een standaardwaarde . U kunt de standaardwaarde voor een registersleutel wijzigen met Set-Item of Set-ItemProperty.

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

Zie de volgende artikelen voor meer informatie over de cmdlets die in deze sectie worden gebruikt.

Registersleutels en -waarden maken

De New-Item cmdlet maakt registersleutels met een naam die u opgeeft. U kunt ook de mkdir functie gebruiken, die de New-Item cmdlet intern aanroept.

mkdir ContosoCompany
    Hive: HKEY_LOCAL_MACHINE\SOFTWARE

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

U kunt de New-ItemProperty cmdlet gebruiken om waarden te maken in een registersleutel die u opgeeft. In het volgende voorbeeld wordt een nieuwe DWORD-waarde gemaakt voor de registersleutel ContosoCompany.

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

Notitie

Raadpleeg de sectie dynamische parameters in dit artikel voor andere toegestane typewaarden.

Zie New-ItemProperty voor gedetailleerd gebruik van cmdlets.

Registersleutels en -waarden kopiëren

Gebruik in de registerprovider de Copy-Item cmdlet om registersleutels en -waarden te kopiëren. Gebruik de Copy-ItemProperty cmdlet om alleen registerwaarden te kopiëren. Met de volgende opdracht kopieert u de registersleutel Contoso en de bijbehorende eigenschappen naar de opgegeven locatie HKLM:\Software\Fabrikam.

Copy-Item maakt de doelsleutel als deze niet bestaat. Als de doelsleutel bestaat, Copy-Item maakt u een duplicaat van de bronsleutel als een onderliggend item (subsleutel) van de doelsleutel.

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

De volgende opdracht gebruikt de Copy-ItemProperty cmdlet om de waarde 'Server' te kopiëren van de sleutel 'Contoso' naar de 'Fabrikam'-sleutel.

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

Zie de volgende artikelen voor meer informatie over de cmdlets die in deze sectie worden gebruikt.

Registersleutels en -waarden verplaatsen

De Move-Item cmdlets en Move-ItemProperty gedragen zich als hun 'Copy'-tegenhangers. Als de bestemming bestaat, Move-Item verplaatst u de bronsleutel onder de doelsleutel. Als de doelsleutel niet bestaat, wordt de bronsleutel verplaatst naar het doelpad.

Met de volgende opdracht wordt de sleutel Contoso naar het pad HKLM:\SOFTWARE\Fabrikamverplaatst.

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

Met deze opdracht worden alle eigenschappen verplaatst van HKLM:\SOFTWARE\ContosoCompany naar HKLM:\SOFTWARE\Fabrikam.

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

Zie de volgende artikelen voor meer informatie over de cmdlets die in deze sectie worden gebruikt.

De naam van registersleutels en -waarden wijzigen

U kunt de naam van registersleutels en -waarden wijzigen, net zoals bestanden en mappen. Rename-Item Wijzigt de naam van registersleutels en Rename-ItemProperty wijzigt de naam van registerwaarden.

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

Beveiligingsdescriptors wijzigen

U kunt de toegang tot registersleutels beperken met behulp van de Get-Acl cmdlets en Set-Acl . In het volgende voorbeeld wordt een nieuwe gebruiker met volledig beheer toegevoegd aan de HKLM:\SOFTWARE\Contoso registersleutel.

$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

Zie de volgende artikelen voor meer voorbeelden en informatie over het gebruik van cmdlets.

Registersleutels en -waarden verwijderen en wissen

U kunt ingesloten items verwijderen met behulp van Remove-Item, maar u wordt gevraagd de verwijdering te bevestigen als het item iets anders bevat. In het volgende voorbeeld wordt geprobeerd een sleutel HKLM:\SOFTWARE\Contosote verwijderen.

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"):

Als u ingesloten items wilt verwijderen zonder te vragen, geeft u de -Recurse parameter op.

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

Als u alle items in HKLM:\SOFTWARE\Contoso maar niet HKLM:\SOFTWARE\Contoso zichzelf wilt verwijderen, gebruikt u een afsluitende backslash \ gevolgd door een jokerteken.

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

Met deze opdracht verwijdert u de registerwaarde ContosoTest uit de HKLM:\SOFTWARE\Contoso registersleutel.

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

Clear-Item wist alle registerwaarden voor een sleutel. In het volgende voorbeeld worden alle waarden uit de HKLM:\SOFTWARE\Contoso registersleutel gewist. Als u alleen een specifieke eigenschap wilt wissen, gebruikt u 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

Zie de volgende artikelen voor meer voorbeelden en informatie over het gebruik van cmdlets.

Dynamische parameters

Dynamische parameters zijn cmdlet-parameters die worden toegevoegd door een PowerShell-provider en die alleen beschikbaar zijn wanneer de cmdlet wordt gebruikt in het station met provider.

Typ <Microsoft.Win32.RegistryValueKind>

Hiermee wordt het gegevenstype van een registerwaarde ingesteld of gewijzigd. De standaardwaarde is String (REG_SZ).

Deze parameter werkt zoals is ontworpen voor de cmdlet Set-ItemProperty . Het is ook beschikbaar op de cmdlet Set-Item in de registerstations, maar het heeft geen effect.

Waarde Beschrijving
String Hiermee geeft u een tekenreeks op die is beëindigd met null. Wordt gebruikt voor REG_SZ waarden.
ExpandString Hiermee geeft u een null-beëindigde tekenreeks op die niet-uitgevouwen bevat
verwijzingen naar omgevingsvariabelen die worden uitgebreid wanneer
de waarde wordt opgehaald. Wordt gebruikt voor REG_EXPAND_SZ waarden.
Binary Hiermee geeft u binaire gegevens in elke vorm. Wordt gebruikt voor REG_BINARY waarden.
DWord Hiermee geeft u een 32-bits binair getal op. Wordt gebruikt voor REG_DWORD waarden.
MultiString Hiermee geeft u een matrix van null-beëindigde tekenreeksen op die zijn beëindigd door
twee null-tekens. Wordt gebruikt voor REG_MULTI_SZ waarden.
QWord Hiermee geeft u een 64-bits binair getal op. Wordt gebruikt voor REG_QWORD waarden.
Unknown Geeft een niet-ondersteund registergegevenstype aan, zoals
REG_RESOURCE_LIST waarden.

Ondersteunde cmdlets

De pijplijn gebruiken

Provider-cmdlets accepteren pijplijninvoer. U kunt de pijplijn gebruiken om de taak te vereenvoudigen door providergegevens van de ene cmdlet naar een andere provider-cmdlet te verzenden. Zie de cmdlet-verwijzingen in dit artikel voor meer informatie over het gebruik van de pijplijn met provider-cmdlets.

Ondersteuning vragen

Vanaf Windows PowerShell 3.0 kunt u aangepaste Help-onderwerpen voor provider-cmdlets krijgen waarin wordt uitgelegd hoe deze cmdlets zich gedragen op een bestandssysteemstation.

Als u de Help-onderwerpen wilt ophalen die zijn aangepast voor het bestandssysteemstation, voert u een Get-Help opdracht uit in een bestandssysteemstation of gebruikt u de padparameter om een bestandssysteemstation op te geven.

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

Zie ook