Beállításjegyzék-bejegyzések használata
Ez a minta csak Windows-platformokra vonatkozik.
Mivel a beállításjegyzék-bejegyzések a kulcsok tulajdonságai, ezért nem lehet közvetlenül böngészni, a velük végzett munka során kissé eltérő megközelítést kell alkalmaznunk.
Beállításjegyzék-bejegyzések listázása
A beállításjegyzék bejegyzéseinek vizsgálatára számos különböző módszer létezik. A legegyszerűbb módszer a kulcshoz társított tulajdonságnevek lekérése. Például a beállításkulcs HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
bejegyzéseinek nevének megtekintéséhez használja Get-Item
a következőt: A beállításkulcsok olyan tulajdonsággal rendelkeznek, amelynek általános neve "Tulajdonság", amely a kulcs beállításjegyzék-bejegyzéseinek listája. Az alábbi parancs kijelöli a Tulajdonság tulajdonságot, és kibontja az elemeket, hogy azok megjelenjenek a listában:
Get-Item -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion |
Select-Object -ExpandProperty Property
DevicePath
MediaPathUnexpanded
ProgramFilesDir
CommonFilesDir
ProductId
A beállításjegyzék bejegyzéseinek olvashatóbb formában való megtekintéséhez használja Get-ItemProperty
a következőt:
Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
ProgramFilesDir : C:\Program Files
CommonFilesDir : C:\Program Files\Common Files
ProgramFilesDir (x86) : C:\Program Files (x86)
CommonFilesDir (x86) : C:\Program Files (x86)\Common Files
CommonW6432Dir : C:\Program Files\Common Files
DevicePath : C:\WINDOWS\inf
MediaPathUnexpanded : C:\WINDOWS\Media
ProgramFilesPath : C:\Program Files
ProgramW6432Dir : C:\Program Files
SM_ConfigureProgramsName : Set Program Access and Defaults
SM_GamesName : Games
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWA
RE\Microsoft\Windows\CurrentVersion
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWA
RE\Microsoft\Windows
PSChildName : CurrentVersion
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
A kulcs Windows PowerShell-hez kapcsolódó tulajdonságai mind "PS" előtaggal rendelkeznek, például PSPath, PSParentPath, PSChildName és PSProvider.
A jelölést használhatja az *.*
aktuális helyre való hivatkozáshoz. Először a CurrentVersion beállításjegyzék-tárolóra válthatSet-Location
:
Set-Location -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
Másik lehetőségként használhatja a beépített PSDrive-ot HKLM:
a következőkkel Set-Location
:
Set-Location -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion
Ezután az .
aktuális hely jelölésével teljes elérési út megadása nélkül listázhatja a tulajdonságokat:
Get-ItemProperty -Path .
...
DevicePath : C:\WINDOWS\inf
MediaPathUnexpanded : C:\WINDOWS\Media
ProgramFilesDir : C:\Program Files
...
Az útvonalbővítés ugyanúgy működik, mint a fájlrendszeren belül, így innen lekérheti az ItemProperty listát a használathoz HKLM:\SOFTWARE\Microsoft\Windows\Help
Get-ItemProperty -Path ..\Help
.
Egyetlen beállításjegyzék-bejegyzés lekérése
Ha egy adott bejegyzést szeretne lekérni egy beállításkulcsban, számos lehetséges módszer egyikét használhatja. Ez a példa a DevicePath értékét keresi meg a következőbenHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
: .
Az Elérési út paraméterrel Get-ItemProperty
adja meg a kulcs nevét, a Név paramétert pedig a DevicePath-bejegyzés nevének megadásához.
Get-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion -Name DevicePath
DevicePath : C:\WINDOWS\inf
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
PSChildName : CurrentVersion
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
Ez a parancs a Windows PowerShell szabványos tulajdonságait és a DevicePath tulajdonságot adja vissza.
Feljegyzés
Bár Get-ItemProperty
a Szűrő, a Belefoglalás és a Kizárás paraméterekkel rendelkezik, nem használhatók tulajdonságnév szerinti szűrésre. Ezek a paraméterek a beállításkulcsokra vonatkoznak, amelyek elemútvonalak, és nem beállításjegyzék-bejegyzések, amelyek elemtulajdonságok.
Egy másik lehetőség a parancssori reg.exe
eszköz használata. Ha segítségre van szüksége reg.exe
, írja be reg.exe /?
a parancssort. A DevicePath bejegyzés megkereséséhez használja reg.exe
az alábbi parancsot:
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion /v DevicePath
! REG.EXE VERSION 3.0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
DevicePath REG_EXPAND_SZ %SystemRoot%\inf
A WshShell COM-objektummal is megkereshet néhány beállításjegyzék-bejegyzést, bár ez a módszer nem működik nagy bináris adatokkal vagy olyan beállításjegyzék-bejegyzésnevekkel, amelyek karaktereket, például fordított perjelet (\
) tartalmaznak. Fűzze hozzá a tulajdonság nevét az elem elérési útjára egy \
elválasztóval:
(New-Object -ComObject WScript.Shell).RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DevicePath")
%SystemRoot%\inf
Egyetlen beállításjegyzék-bejegyzés beállítása
Ha módosítani szeretne egy adott bejegyzést egy beállításkulcsban, számos lehetséges módszer egyikét használhatja. Ez a példa módosítja az Elérési út bejegyzést a következő alattHKEY_CURRENT_USER\Environment
: . Az Elérési út bejegyzés megadja, hogy hol találhatók végrehajtható fájlok.
- Az Elérési út bejegyzés aktuális értékének lekérése a következő használatával
Get-ItemProperty
: . - Adja hozzá az új értéket, és válassza el egy
;
. - Használja
Set-ItemProperty
a megadott kulccsal, bejegyzésnévvel és értékkel a beállításjegyzék-bejegyzés módosításához.
$value = Get-ItemProperty -Path HKCU:\Environment -Name Path
$newpath = $value.Path += ";C:\src\bin\"
Set-ItemProperty -Path HKCU:\Environment -Name Path -Value $newpath
Feljegyzés
Bár Set-ItemProperty
a Szűrő, a Belefoglalás és a Kizárás paraméterekkel rendelkezik, nem használhatók tulajdonságnév szerinti szűrésre. Ezek a paraméterek olyan beállításkulcsokra vonatkoznak , amelyek elemútvonalak, és nem beállításjegyzék-bejegyzések, amelyek elemtulajdonságok.
Egy másik lehetőség a Reg.exe parancssori eszköz használata. Ha segítségre van szüksége reg.exe, írjon be reg.exe /?
egy parancssort.
Az alábbi példa úgy módosítja az Elérési út bejegyzést, hogy eltávolítja a fenti példában hozzáadott elérési utat.
Get-ItemProperty
a rendszer továbbra is az aktuális érték lekérésére szolgál, hogy ne kelljen elemeznie a visszaadott sztringet reg query
. A SubString és a LastIndexOf metódusok az Elérési út bejegyzéshez hozzáadott utolsó elérési út lekérésére szolgálnak.
$value = Get-ItemProperty -Path HKCU:\Environment -Name Path
$newpath = $value.Path.SubString(0, $value.Path.LastIndexOf(';'))
reg add HKCU\Environment /v Path /d $newpath /f
The operation completed successfully.
Új beállításjegyzék-bejegyzések létrehozása
Ha a CurrentVersion kulcshoz egy "PowerShellPath" nevű új bejegyzést szeretne hozzáadni, használja New-ItemProperty
a kulcs elérési útját, a bejegyzés nevét és értékét. Ebben a példában a Windows PowerShell változó $PSHome
értékét fogjuk használni, amely a Windows PowerShell telepítési könyvtárának elérési útját tárolja.
Az új bejegyzést a következő paranccsal adhatja hozzá a kulcshoz, és a parancs az új bejegyzéssel kapcsolatos információkat is visszaadja:
New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -PropertyType String -Value $PSHome
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
PSChildName : CurrentVersion
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
PowerShellPath : C:\Program Files\Windows PowerShell\v1.0
A PropertyType-nak egy Microsoft.Win32.RegistryValueKind enumerálási tagnak kell lennie a következő táblázatból:
Tulajdonságtípus értéke | Értelmezés |
---|---|
Bináris | Bináris adatok |
Dword | Érvényes UInt32-es szám |
ExpandString | Dinamikusan kibontott környezeti változókat tartalmazó sztring |
MultiString | Többsoros sztring |
Sztring | Bármilyen sztringérték |
QWord | 8 bájt bináris adat |
A beállításjegyzék-bejegyzéseket több helyre is felveheti az Elérési út paraméter értéktömbjének megadásával:
New-ItemProperty -Name PowerShellPath -PropertyType String -Value $PSHome `
-Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion, HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion
Felülírhat egy már meglévő beállításjegyzékbejegyzési értéket is, ha a Force paramétert bármely New-ItemProperty
parancshoz hozzáadja.
Beállításjegyzék-bejegyzések átnevezése
A PowerShellPath-bejegyzés "PSHome" névre való átnevezéséhez használja a következőtRename-ItemProperty
:
Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome
Az átnevezett érték megjelenítéséhez adja hozzá a PassThru paramétert a parancshoz.
Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome -passthru
Beállításjegyzék-bejegyzések törlése
A PSHome és a PowerShellPath beállításjegyzék-bejegyzéseinek törléséhez használja a következőt Remove-ItemProperty
:
Remove-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PSHome
Remove-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: