about_Registry_Provider

Název poskytovatele

Registr

Jednotky

HKLM:, HKCU:

Možnosti

ShouldProcess, UseTransactions

Krátký popis

Poskytuje přístup ke klíčům registru, položkám a hodnotám v PowerShellu.

Podrobný popis

Tyto informace platí jenom pro PowerShell spuštěný ve Windows.

Zprostředkovatel registru PowerShellu umožňuje získat, přidat, změnit, vymazat a odstranit klíče registru, položky a hodnoty v PowerShellu.

Jednotky registru jsou hierarchický obor názvů obsahující klíče registru a podklíče ve vašem počítači. Položky registru a hodnoty nejsou součástí této hierarchie. Místo toho se jedná o vlastnosti každého klíče.

Poskytovatel registru podporuje následující rutiny, které jsou popsané v tomto článku.

Typy vystavené tímto poskytovatelem

Klíče registru jsou reprezentovány jako instance třídy Microsoft.Win32.RegistryKey . Položky registru jsou reprezentovány jako instance PSCustomObject třídy.

Poskytovatel registru zveřejňuje své úložiště dat jako dvě výchozí jednotky. Umístění registru HKEY_LOCAL_MACHINE se mapuje na jednotku HKLM: a HKEY_CURRENT_USER se mapuje na jednotku HKCU: . Pokud chcete pracovat s registrem, můžete umístění změnit na jednotku HKLM: pomocí následujícího příkazu.

Set-Location HKLM:

Pokud se chcete vrátit na jednotku systému souborů, zadejte název jednotky. Zadejte například:

Set-Location C:

S poskytovatelem registru můžete pracovat také z libovolné jiné jednotky PowerShellu. Pokud chcete odkazovat na klíč registru z jiného umístění, použijte v cestě název jednotky (HKLM:, HKCU:). K označení úrovně jednotky registru použijte zpětné lomítko (\) nebo lomítko (/).

PS C:\> cd HKLM:\Software

Poznámka:

PowerShell používá aliasy, které vám umožní pracovat se známým způsobem práce s cestami zprostředkovatele. Příkazy jako dirls a jsou teď aliasy pro Get-ChildItem, cd je alias pro Set-Location a pwd je alias pro Get-Location.

Tento poslední příklad ukazuje jinou syntaxi cesty, kterou můžete použít k navigaci poskytovatele registru . Tato syntaxe používá název zprostředkovatele následovaný dvěma dvojtečkami ::. Tato syntaxe umožňuje použít úplný název HIVE místo názvu HKLMnamapované jednotky .

cd "Registry::HKEY_LOCAL_MACHINE\Software"

Zobrazení obsahu klíčů registru

Registr je rozdělený na klíče, podklíče a položky. Další informace o struktuře registru naleznete v tématu Struktura registru.

Na jednotce registru je každý klíč kontejnerem. Klíč může obsahovat libovolný počet klíčů. Klíč registru, který má nadřazený klíč, se nazývá podklíč. Můžete použít Get-ChildItem k zobrazení klíčů registru a Set-Location k přechodu na cestu ke klíči.

Hodnoty registru jsou atributy klíče registru. Na jednotce registru se nazývají Vlastnosti položky. Klíč registru může mít podřízené klíče i vlastnosti položky.

V tomto příkladu je rozdíl mezi Get-Item a Get-ChildItem je zobrazen. Pokud použijete Get-Item klíč registru Zařazování služby, můžete zobrazit jeho vlastnosti.

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

Každý klíč registru může mít také podklíče. Když použijete Get-Item klíč registru, podklíče se nezobrazí. Rutina Get-ChildItem zobrazí podřízené položky klíče zařazování, včetně vlastností jednotlivých podklíčů. Vlastnosti nadřazených klíčů se při použití Get-ChildItemnezobrazují .

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

Rutinu Get-Item lze použít také v aktuálním umístění. Následující příklad přejde na klíč registru zařazování "Spooler" a získá vlastnosti položky. Tečka . se používá k označení aktuálního umístění.

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

Další informace o rutinách popsaných v této části najdete v následujících článcích.

-Get-Item -Get-ChildItem

Zobrazení hodnot klíčů registru

Hodnoty klíče registru se ukládají jako vlastnosti každého klíče registru. Rutina Get-ItemProperty zobrazí vlastnosti klíče registru pomocí zadaného názvu. Výsledkem je PSCustomObject obsahující zadané vlastnosti.

Následující příklad používá rutinu Get-ItemProperty k zobrazení všech vlastností. Uložení výsledného objektu do proměnné umožňuje přístup k požadované hodnotě vlastnosti.

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

Zadáním hodnoty pro -Name parametr vyberete vlastnosti, které zadáte, a vrátí PSCustomObject. Následující příklad ukazuje rozdíl ve výstupu při použití parametru -Name .

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

Počínaje PowerShellem 5.0 vrátí rutina pouze hodnotu vlastnosti, Get-ItemPropertyValue kterou zadáte.

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

Další informace o rutinách používaných v této části najdete v následujících článcích.

Změna hodnot klíčů registru

Rutina Set-ItemProperty nastaví atributy pro klíče registru. Následující příklad používá Set-ItemProperty ke změně typu spuštění služby zařazování na ruční. V příkladu se změní typ StartType zpět na Automatické pomocí rutiny Set-Service .

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

Každý klíč registru má výchozí hodnotu. Výchozí hodnotu klíče registru můžete změnit pomocí Set-ItemSet-ItemPropertynebo .

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

Další informace o rutinách používaných v této části najdete v následujících článcích.

Vytváření klíčů a hodnot registru

Rutina New-Item vytvoří klíče registru s názvem, který zadáte. Můžete také použít mkdir funkci, která volá rutinu New-Item interně.

mkdir ContosoCompany
    Hive: HKEY_LOCAL_MACHINE\SOFTWARE

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

Pomocí rutiny New-ItemProperty můžete vytvořit hodnoty v zadaném klíči registru. Následující příklad vytvoří novou hodnotu DWORD pro klíč registru ContosoCompany.

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

Poznámka:

Další povolené hodnoty typů najdete v části dynamické parametry v tomto článku.

Podrobné informace o využití rutin najdete v tématu New-ItemProperty.

Kopírování klíčů a hodnot registru

Ve zprostředkovateli registru pomocí Copy-Item rutiny zkopírujte klíče a hodnoty registru. Pomocí rutiny Copy-ItemProperty zkopírujte pouze hodnoty registru. Následující příkaz zkopíruje klíč registru "Contoso" a jeho vlastnosti do zadaného umístění "HKLM:\Software\Fabrikam".

Copy-Item vytvoří cílový klíč, pokud neexistuje. Pokud cílový klíč existuje, Copy-Item vytvoří duplikát zdrojového klíče jako podřízenou položku (podklíč) cílového klíče.

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

Následující příkaz pomocí rutiny Copy-ItemProperty zkopíruje hodnotu "Server" z klíče "Contoso" do klíče "Fabrikam".

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

Další informace o rutinách používaných v této části najdete v následujících článcích.

Přesun klíčů a hodnot registru

Move-ItemProperty Rutiny Move-Item se chovají jako jejich protějšky pro kopírování. Pokud cíl existuje, Move-Item přesune zdrojový klíč pod cílový klíč. Pokud cílový klíč neexistuje, zdrojový klíč se přesune do cílové cesty.

Následující příkaz přesune klíč "Contoso" do cesty HKLM:\SOFTWARE\Fabrikam.

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

Tento příkaz přesune všechny vlastnosti z HKLM:\SOFTWARE\ContosoCompany do HKLM:\SOFTWARE\Fabrikam.

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

Další informace o rutinách používaných v této části najdete v následujících článcích.

Přejmenování klíčů a hodnot registru

Klíče registru a hodnoty můžete přejmenovat stejně jako soubory a složky. Rename-Item přejmenuje klíče registru a Rename-ItemProperty přejmenovává hodnoty registru.

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

Změna popisovačů zabezpečení

Přístup k klíčům registru můžete omezit pomocí rutin Get-Acl a Set-Acl rutin. Následující příklad přidá nového uživatele s úplným řízením do HKLM:\SOFTWARE\Contoso klíče registru.

$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

Další příklady a podrobnosti o využití rutin najdete v následujících článcích.

Odebrání a vymazání klíčů a hodnot registru

Obsažené položky můžete odebrat pomocí , Remove-Itemale zobrazí se výzva k potvrzení odebrání, pokud položka obsahuje něco jiného. Následující příklad se pokusí odstranit klíč 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"):

Pokud chcete odstranit obsažené položky bez výzvy, zadejte -Recurse parametr.

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

Pokud chcete odebrat všechny položky uvnitř HKLM:\SOFTWARE\Contoso , ale ne HKLM:\SOFTWARE\Contoso v sobě, použijte koncové zpětné lomítko \ následované zástupným znakem.

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

Tento příkaz odstraní hodnotu registru ContosoTest z HKLM:\SOFTWARE\Contoso klíče registru.

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

Clear-Item vymaže všechny hodnoty registru pro klíč. Následující příklad vymaže všechny hodnoty z HKLM:\SOFTWARE\Contoso klíče registru. Chcete-li vymazat pouze určitou vlastnost, použijte 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

Další příklady a podrobnosti o využití rutin najdete v následujících článcích.

Dynamické parametry

Dynamické parametry jsou parametry rutiny přidané zprostředkovatelem PowerShellu a jsou k dispozici pouze v případech, kdy se rutina používá na jednotce s podporou poskytovatele.

Zadejte <Microsoft.Win32.RegistryValueKind>

Vytvoří nebo změní datový typ hodnoty registru. Výchozí hodnota je String (REG_SZ).

Tento parametr funguje jako navržený v rutině Set-ItemProperty . Je také k dispozici v rutině Set-Item v jednotkách registru, ale nemá žádný vliv.

Hodnota Popis
String Určuje řetězec ukončený hodnotou null. Používá se pro REG_SZ hodnoty.
ExpandString Určuje řetězec ukončený hodnotou null, který obsahuje nevyexpandovaný řetězec.
odkazy na proměnné prostředí, které jsou rozbalené při
hodnota se načte. Používá se pro REG_EXPAND_SZ hodnoty.
Binary Určuje binární data v libovolném formuláři. Používá se pro REG_BINARY hodnoty.
DWord Určuje 32bitové binární číslo. Používá se pro REG_DWORD hodnoty.
MultiString Určuje pole řetězců ukončených hodnotou null ukončených
dva znaky null. Používá se pro REG_MULTI_SZ hodnoty.
QWord Určuje 64bitové binární číslo. Používá se pro REG_QWORD hodnoty.
Unknown Označuje nepodporovaný datový typ registru, například
REG_RESOURCE_LIST hodnoty.

Podporované rutiny

Použití kanálu

Rutiny zprostředkovatele přijímají vstup kanálu. Kanál můžete použít ke zjednodušení úlohy odesláním dat zprostředkovatele z jedné rutiny do jiné rutiny zprostředkovatele. Další informace o tom, jak používat kanál s rutinami zprostředkovatele, najdete v odkazech na rutiny uvedené v tomto článku.

Získání nápovědy

Od windows PowerShellu 3.0 můžete získat přizpůsobená témata nápovědy pro rutiny zprostředkovatele, která vysvětlují, jak se tyto rutiny chovají na jednotce systému souborů.

Pokud chcete získat témata nápovědy, která jsou přizpůsobená pro jednotku systému souborů, spusťte Get-Help příkaz na jednotce systému souborů nebo pomocí parametru Cesta zadejte jednotku systému souborů.

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

Viz také