Beállításkulcsok használata
Ez a minta csak Windows-platformokra vonatkozik.
Mivel a beállításkulcsok a PowerShell-meghajtók elemei, a velük végzett munka nagyon hasonló a fájlok és mappák használatához. Az egyik kritikus különbség, hogy a beállításjegyzék-alapú PowerShell-meghajtók minden eleme tároló, ugyanúgy, mint egy fájlrendszer-meghajtón lévő mappa. A beállításjegyzék-bejegyzések és a hozzájuk tartozó értékek azonban az elemek tulajdonságai, nem pedig a különálló elemek.
Beállításkulcs összes alkulcsának felsorolása
A beállításkulcson belül az összes elemet megjelenítheti közvetlenül a beállításkulcs használatával Get-ChildItem
. Adja hozzá az opcionális Force paramétert a rejtett vagy rendszerelemek megjelenítéséhez. Ez a parancs például közvetlenül a PowerShell-meghajtón HKCU:
belül jeleníti meg az elemeket, amelyek megfelelnek a HKEY_CURRENT_USER
beállításjegyzék-hive-nek:
Get-ChildItem -Path HKCU:\ | Select-Object Name
Hive: Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER
Name
----
HKEY_CURRENT_USER\AppEvents
HKEY_CURRENT_USER\Console
HKEY_CURRENT_USER\Control Panel
HKEY_CURRENT_USER\DirectShow
HKEY_CURRENT_USER\dummy
HKEY_CURRENT_USER\Environment
HKEY_CURRENT_USER\EUDC
HKEY_CURRENT_USER\Keyboard Layout
HKEY_CURRENT_USER\MediaFoundation
HKEY_CURRENT_USER\Microsoft
HKEY_CURRENT_USER\Network
HKEY_CURRENT_USER\Printers
HKEY_CURRENT_USER\Software
HKEY_CURRENT_USER\System
HKEY_CURRENT_USER\Uninstall
HKEY_CURRENT_USER\WXP
HKEY_CURRENT_USER\Volatile Environment
Ezek a beállításszerkesztő (regedit.exe
) alatt HKEY_CURRENT_USER
látható legfelső szintű kulcsok.
Ezt a beállításjegyzék-elérési utat a beállításjegyzék-szolgáltató nevének megadásával is megadhatja, majd a következővel ::
: . A beállításjegyzék-szolgáltató teljes neve Microsoft.PowerShell.Core\Registry
, de ez egyszerűen Registry
lerövidíthető. Az alábbi parancsok bármelyike közvetlenül a következő alatt HKCU:
listázhatja a tartalmat.
Get-ChildItem -Path Registry::HKEY_CURRENT_USER
Get-ChildItem -Path Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER
Get-ChildItem -Path Registry::HKCU
Get-ChildItem -Path Microsoft.PowerShell.Core\Registry::HKCU
Get-ChildItem HKCU:
Ezek a parancsok csak a közvetlenül tartalmazott elemeket sorolják fel, hasonlóan a UNIX-rendszerhéjban cmd.exe
való ls
használathozDIR
. A tartalmazott elemek megjelenítéséhez meg kell adnia a Recurse paramétert . Az összes beállításkulcs HKCU:
listázásához használja az alábbi parancsot.
Get-ChildItem -Path HKCU:\ -Recurse
Get-ChildItem
Összetett szűrési képességeket végezhet az Elérési út, Szűrés, Belefoglalás és Kizárás paramétereken keresztül, de ezek a paraméterek általában csak a név alapján vannak megadva. A parancsmaggal Where-Object
összetett szűrést végezhet az elemek egyéb tulajdonságai alapján.
Az alábbi parancs megkeresi az összes olyan kulcsot HKCU:\Software
, amely nem tartalmaz egynél több alkulcsot, és pontosan négy értékkel is rendelkezik:
Get-ChildItem -Path HKCU:\Software -Recurse |
Where-Object {($_.SubKeyCount -le 1) -and ($_.ValueCount -eq 4) }
Kulcsok másolása
A másolás a művelettel Copy-Item
történik. Az alábbi példa az CurrentVersion
alkulcsot HKLM:\SOFTWARE\Microsoft\Windows\
és annak összes tulajdonságát a következőre HKCU:\
másolja:
Copy-Item -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion' -Destination HKCU:
Ha a beállításszerkesztőben vagy a beállításszerkesztőben Get-ChildItem
vizsgálja meg ezt az új kulcsot, észreveheti, hogy az új helyen nem található másolat a tartalmazott alkulcsokról. A tároló teljes tartalmának másolásához meg kell adnia a Recurse paramétert . Az előző másolási parancs rekurzívvá alakításához használja a következő parancsot:
Copy-Item -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion' -Destination HKCU: -Recurse
A fájlrendszer-másolatok végrehajtásához továbbra is használhat más, már elérhető eszközöket. A Beállításjegyzék szerkesztését támogató beállításjegyzék-szerkesztőeszközök ( például reg.exe
regedit.exe
regini.exe
a WScript.Shell és a WMI StdRegProv osztálya) a PowerShellben használhatók.
Kulcsok létrehozása
Az új kulcsok létrehozása a beállításjegyzékben egyszerűbb, mint egy új elem létrehozása a fájlrendszerben. Mivel minden beállításkulcs tároló, nem kell megadnia az elem típusát. Csak adjon meg egy explicit útvonalat, például:
New-Item -Path HKCU:\Software_DeleteMe
A kulcs megadásához szolgáltatóalapú elérési út is használható:
New-Item -Path Registry::HKCU\Software_DeleteMe
Kulcsok törlése
Az elemek törlése lényegében minden szolgáltató esetében ugyanaz. Az alábbi parancsok csendben eltávolítják az elemeket:
Remove-Item -Path HKCU:\Software_DeleteMe
Remove-Item -Path 'HKCU:\key with spaces in the name'
Az összes kulcs eltávolítása egy adott kulcs alatt
A tartalmazott elemeket eltávolíthatja a használatával Remove-Item
, de a rendszer kérni fogja, hogy erősítse meg az eltávolítást, ha az elem tartalmaz-e bármi mást. Ha például megpróbáljuk törölni a HKCU:\CurrentVersion
létrehozott alkulcsot, a következőt látjuk:
Remove-Item -Path HKCU:\CurrentVersion
Confirm
The item at HKCU:\CurrentVersion\AdminDebug 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"):
Ha a tartalmazott elemeket kérés nélkül szeretné törölni, adja meg a Recurse paramétert :
Remove-Item -Path HKCU:\CurrentVersion -Recurse
Ha az összes elemet HKCU:\CurrentVersion
el szeretné távolítani, de önmagában nem HKCU:\CurrentVersion
, a következőt használhatja:
Remove-Item -Path HKCU:\CurrentVersion\* -Recurse