Sdílet prostřednictvím


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

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 jednotlivých klíčů.

Poskytovatel registru podporuje následující rutiny:

Typy vystavené tímto poskytovatelem

Zprostředkovatel registru vrací data registru v jednom ze dvou typů:

Poskytovatel registru zveřejňuje své úložiště dat jako dvě výchozí jednotky.

  • HKLM: mapuje se na HKEY_LOCAL_MACHINE podregistr registru.
  • HKCU: mapuje se na HKEY_CURRENT_USER podregistr registru.

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 dir a ls jsou 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 zobrazuje podklíče 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í hodnoty registru přidružené k klíči 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í. Příklad změní typ StartType zpět na Automatic použití rutinySet-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. Hodnotu klíče registru můžete změnit default pomocí Set-Item klíče registru nebo Set-ItemProperty.

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ří nové 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-Item. Pokud položka obsahuje něco jiného, zobrazí se výzva k potvrzení odebrání. 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 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"):

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.

  • String - Používá se pro REG_SZ hodnoty. [System.String] Předejte objekt parametru Value.
  • ExpandString - Používá se pro REG_EXPAND_SZ hodnoty. [System.String] Předejte objekt parametru Value. Řetězec by měl obsahovat nepotřebné odkazy na proměnné prostředí, které se rozbalí při načtení hodnoty.
  • Binary - Používá se pro REG_BINARY hodnoty. [System.Byte[]] Předejte objekt parametru Value.
  • DWord - Používá se pro REG_DWORD hodnoty. [System.Int32] Předejte objekt parametru Value.
  • MultiString - Používá se pro REG_MULTI_SZ hodnoty. [System.String[]] Předejte objekt parametru Value.
  • QWord - Používá se pro REG_QWORD hodnoty. [System.Int64] Předejte objekt parametru Value.
  • Unknown – Označuje nepodporovaný datový typ registru, například REG_RESOURCE_LIST hodnoty.

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é