Delen via


about_Registry_Provider

Providernaam

Register

Stations

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 die wordt uitgevoerd in Windows.

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

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 ze 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 is toegewezen aan het HKCU: station. Als u met het register wilt werken, kunt u uw locatie wijzigen in het HKLM: station 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 een ander PowerShell-station. Als u wilt verwijzen naar een registersleutel vanaf een andere locatie, gebruikt u de stationsnaam (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 om u een vertrouwde manier te bieden om met providerpaden te 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 HKLMvan het toegewezen station.

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 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 Get-ChildItem registersleutels weergeven en Set-Location naar een sleutelpad navigeren.

Registerwaarden zijn kenmerken van een registersleutel. In het registerstation worden ze itemeigenschappen genoemd. 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 bevatten. Wanneer u een registersleutel gebruikt Get-Item , worden de subsleutels niet weergegeven. In Get-ChildItem de cmdlet worden onderliggende items van de sleutel 'Spooler' weergegeven, inclusief de eigenschappen van elke subsleutel. De eigenschappen van de bovenliggende sleutels worden niet weergegeven wanneer u deze 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 gaat u naar de registersleutel 'Spooler' en haalt u de itemeigenschappen op. 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. Als u het resulterende object opslaat 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, worden de eigenschappen geselecteerd die u opgeeft en wordt het PSCustomObject geretourneerd. 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 het Set-ItemProperty begintype van de spooler-service gewijzigd in handmatig. In het voorbeeld wordt het 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, waarmee de New-Item cmdlet intern wordt aangeroepen.

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 op de registersleutel ContosoCompany.

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

Notitie

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

Zie New-ItemProperty voor meer informatie over het gebruik van cmdlets.

Registersleutels en -waarden kopiëren

Gebruik in de registerprovider registersleutels en -waarden met de Copy-Item cmdlet. Gebruik de Copy-ItemProperty cmdlet om alleen registerwaarden te kopiëren. Met de volgende opdracht kopieert u de registersleutel Contoso en de eigenschappen ervan 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

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

$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 en Move-ItemProperty cmdlets gedragen zich als hun tegenhangers voor kopiëren. Als het doel 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 en Set-Acl cmdlets. 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 gebruiksgegevens voor cmdlets.

Registersleutels en -waarden verwijderen en wissen

U kunt ingesloten items verwijderen met behulp van Remove-Item, maar u wordt gevraagd om 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 binnen HKLM:\SOFTWARE\Contoso maar niet HKLM:\SOFTWARE\Contoso zelf wilt verwijderen, gebruikt u een afsluitende backslash \ gevolgd door een jokerteken.

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

Met deze opdracht wordt de registerwaarde ContosoTest uit de HKLM:\SOFTWARE\Contoso registersleutel verwijderd.

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 gebruiksgegevens voor cmdlets.

Dynamische parameters

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

Type <Microsoft.Win32.RegistryValueKind>

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

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

Weergegeven als Beschrijving
String Hiermee geeft u een door null beëindigde tekenreeks op. Wordt gebruikt voor REG_SZ waarden.
ExpandString Hiermee geeft u een door null beëindigde tekenreeks op die niet-uitgevouwen bevat
verwijzingen naar omgevingsvariabelen die worden uitgevouwen 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. Wordt gebruikt voor REG_DWORD waarden.
MultiString Hiermee geeft u een matrix van door 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. 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.

Hulp krijgen

Vanaf Windows PowerShell 3.0 kunt u aangepaste Help-onderwerpen krijgen voor provider-cmdlets die uitleggen hoe deze cmdlets zich gedragen in een bestandssysteemstation.

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

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

Zie ook