Práce s Položky Registru

  • 06/05/2017
  • 5 minut číst
    • j
    • k
    • m
    • b

Protože záznamy v registru jsou vlastnosti klíče a jako takové nemůže být přímo procházet, potřebujeme mít mírně odlišný přístup při práci s nimi.

výpis položek registru

existuje mnoho různých způsobů, jak zkoumat položky registru. Nejjednodušší je získat vlastnostjména spojená s klíčem. Například, chcete-li zobrazit názvy položek v klíči registruHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersionGet-Item. Klíče registru mají vlastnost s obecným názvem „vlastnost“, což je seznam položek registru v klíči.Následující příkaz vybere vlastnost property a rozbalí položky tak, aby byly zobrazeny v seznamu:

DevicePathMediaPathUnexpandedProgramFilesDirCommonFilesDirProductId

K zobrazení registru v čitelnější podobě, používání Get-ItemProperty:

Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

Windows PowerShell související vlastnosti pro klíčové jsou všechny s předponou „PS“, jako asPSPath, PSParentPath, PSChildName, a PSProvider.

můžete použít *.* notaci pro odkaz na aktuální umístění. Můžete použít Set-Locationnejprve změnit kontejner registru CurrentVersion:

Set-Location -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

Případně můžete použít vestavěný-v HKLM PSDrive s Set-Location:

Set-Location -Path hklm:\SOFTWARE\Microsoft\Windows\CurrentVersion

můžete pak použít *.* notace pro aktuální polohu na seznam vlastností withoutspecifying plnou cestou:

Get-ItemProperty -Path .
...DevicePath : C:\WINDOWS\infMediaPathUnexpanded : C:\WINDOWS\MediaProgramFilesDir : C:\Program Files...

Cesta expanze funguje stejně jako to dělá v rámci systému souborů, takže z tohoto umístění můžete dostat ItemProperty pro výpis HKLM:\SOFTWARE\Microsoft\Windows\Help pomocíGet-ItemProperty -Path ..\Help.

získání jediné položky registru

Pokud chcete načíst konkrétní položku v klíči registru, můžete použít jeden z několika možných přístupů. Tento příklad najde hodnotu DevicePath vHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion.

Pomocí Get-ItemProperty, použijte Cestu parametru zadejte název klíče a název parametru zadejte název DevicePath vstupu.

Get-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion -Name DevicePath

Tento příkaz vrací standardní vlastnosti prostředí Windows PowerShell i DevicePathproperty.

Poznámka:

i když Get-ItemProperty má Filtr, Zahrnout, a Vyloučit parametry, které nelze použít k filtrování podle názvu vlastnosti. Tyto parametry se vztahují na klíče registru, které jsou itempathy a nikoli položky registru, což jsou vlastnosti položky.

Další možností je použít Reg.exe nástroj příkazového řádku. Pro pomoc s reg.exe, zadejte reg.exe /?na příkazovém řádku. Chcete-li najít položku DevicePath, použijte reg.exe, jak je uvedeno v následujícím příkazu:

reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion /v DevicePath

můžete také použít WshShell objektu COM také najít nějaké záznamy v registru, i když tato metoda nefunguje s velké binární data nebo položku registru, názvy, které obsahují characterssuch jako „\“). Přidat název vlastnosti do položky cesta s \ oddělovač:

(New-Object -ComObject WScript.Shell).RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DevicePath")
%SystemRoot%\inf

Nastavení jedné položky Registru

Pokud chcete změnit konkrétní záznam v registru klíč, můžete použít jednu z několika possibleapproaches. Tento příklad upravuje položku cesty pod HKEY_CURRENT_USER\Environment. Položka path určuje, kde najít spustitelné soubory.

  1. načte aktuální hodnotu položky cesty pomocí Get-ItemProperty.
  2. přidejte novou hodnotu a oddělte ji ;.
  3. použijte Set-ItemProperty se zadaným klíčem, názvem položky a hodnotou pro změnu registryentry.

Poznámka

ačkoli Set-ItemProperty má filtr, zahrnout a vyloučit parametry, nemohou být použity k filtrování podle názvu vlastnosti. Tyto parametry odkazují na klíče registru-což jsou itempathy-a nikoli položky registru-což jsou vlastnosti položky.

Další možností je použít Reg.exe nástroj příkazového řádku. Pro pomoc s reg.exe, zadejte reg.exe /?na příkazovém řádku.

následující příklad změní položku cesta odstraněním cesty přidané v příkladu výše.Get-ItemProperty se stále používá k načtení aktuální hodnoty, aby se předešlo nutnosti analyzovat řetězec navrácený z reg query. Metody SubString a LastIndexOf se používají k načtení poslední cesty přidané do položky cesta.

The operation completed successfully.

Vytváření Nové Položky Registru

Chcete-li přidat novou položku s názvem „PowerShellPath“ CurrentVersion klíč, použijte New-ItemPropertys cestou na klíč, název položky a hodnota vstupu. V tomto příkladu budemevezměte hodnotu proměnné Windows PowerShell $PSHome, která ukládá cestu k adresáři instalace pro Windows PowerShell.

novou položku můžete přidat do klíče pomocí následujícího příkazu a příkaz se také vrátíinformace o nové položce:

PropertyType musí být název Microsoft.Win32.RegistryValueKind výčet členůz následující tabulky:

PropertyType Value Meaning
Binary Binary data
DWord A number that is a valid UInt32
ExpandString A string that can contain environment variables that are dynamically expanded
MultiString A multiline string
String Any string value
QWord 8 bytes of binary data

Poznámka:

můžete přidat položku registru do více míst zadáním pole hodnot pro parametr cesta:

můžete také přepsat již existující hodnotu položky registru přidáním parametr Síly, aby jakékolivNew-ItemProperty příkaz.

Přejmenování Položky Registru

Abyste přejmenovat PowerShellPath vstup do „PSHome,“ použít Rename-ItemProperty:

Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome

K zobrazení přejmenována hodnota, přidejte PassThru parametr příkazu.

Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome -passthru

Smazání Položky Registru

odstranit obě PSHome a PowerShellPath registru, použijte Remove-ItemProperty:

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *