- 06/05/2017
- 5 minuten te lezen
-
- j
- s
- k
- m
- b
Omdat registervermeldingen eigenschappen van de toetsen en, als zodanig, niet rechtstreeks kan worden bezocht, we needto nemen een iets andere aanpak bij het werken met hen.
registervermeldingen weergeven
Er zijn veel verschillende manieren om registervermeldingen te onderzoeken. De eenvoudigste manier is om de propertynames geassocieerd met een sleutel te krijgen. Als u bijvoorbeeld de namen van de vermeldingen in de registersleutelHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
wilt zien, gebruikt u Get-Item
. Registersleutelhoud een eigenschap met de generieke naam van “Property” dat is een lijst van registervermeldingen in de sleutel.Het volgende commando selecteert de eigenschap eigenschap en breidt de items uit zodat ze worden weergegeven in een lijst:
DevicePathMediaPathUnexpandedProgramFilesDirCommonFilesDirProductId
om de registervermeldingen in een meer leesbare vorm te bekijken, gebruik Get-ItemProperty
:
Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
De Windows PowerShell-gerelateerde eigenschappen voor de sleutel worden allemaal voorafgegaan door “PS”, zoals asPSPath, PSParentPath, PSChildName, en psprovider.
u kunt de notatie *.*
gebruiken om naar de huidige locatie te verwijzen. U kunt Set-Location
gebruiken om eerst naar de huidige versie-registercontainer te gaan:
Set-Location -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
u kunt Ook gebruik maken van de ingebouwde HKLM PSDrive met Set-Location
:
Set-Location -Path hklm:\SOFTWARE\Microsoft\Windows\CurrentVersion
U kunt dan gebruik maken van de *.*
notatie voor de huidige locatie om een lijst van de eigenschappen withoutspecifying een volledig pad:
Get-ItemProperty -Path .
...DevicePath : C:\WINDOWS\infMediaPathUnexpanded : C:\WINDOWS\MediaProgramFilesDir : C:\Program Files...
het Pad expansion werkt op dezelfde manier als in het bestandssysteem, zodat vanuit deze locatie kunt u getthe ItemProperty vermelding voor HKLM:\SOFTWARE\Microsoft\Windows\Help
met behulp vanGet-ItemProperty -Path ..\Help
.
een enkele registervermelding ophalen
Als u een specifieke vermelding in een registersleutel wilt ophalen, kunt u een van de verschillende mogelijke benaderingen gebruiken. Dit voorbeeld vindt de waarde van DevicePath inHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
.
gebruik Get-ItemProperty
, gebruik de Padparameter om de naam van de sleutel te specificeren, en de naamparameter om de naam van het DevicePath-item te specificeren.
Get-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion -Name DevicePath
Dit commando geeft zowel de standaard Windows PowerShell-eigenschappen als de DevicePathproperty terug.
Note
hoewel Get-ItemProperty
filter -, Include-en Exclude-parameters heeft, kunnen ze niet worden gebruikt om te filteren op eigenschapsnaam. Deze parameters verwijzen naar registersleutels, die zijn itempads en niet registervermeldingen, die item eigenschappen zijn.
een andere optie is om de Reg te gebruiken.exe command line tool. Voor hulp bij reg.exe, typ reg.exe /?
bij een opdrachtprompt. Om het DevicePath-item te vinden, gebruikt u reg.exe zoals getoond in het volgende commando:
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion /v DevicePath
u kunt het wshshell COM-object ook gebruiken om enkele registervermeldingen te vinden, hoewel deze methode niet werkt met grote binaire gegevens of met registervermeldingen die tekens bevatten zoals “\”). Voeg de eigenschapsnaam toe aan het itempad met een \ separator:
(New-Object -ComObject WScript.Shell).RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DevicePath")
%SystemRoot%\inf
een enkele registervermelding instellen
Als u een specifieke vermelding in een registersleutel wilt wijzigen, kunt u een van de verschillende mogelijke benaderingen gebruiken. Dit voorbeeld wijzigt het pad onder HKEY_CURRENT_USER\Environment
. Het pad geeft aan waar uitvoerbare bestanden te vinden zijn.
- haal de huidige waarde van de ingang van het pad op met
Get-ItemProperty
. - voeg de nieuwe waarde toe door deze te scheiden met een
;
. - gebruik
Set-ItemProperty
met de opgegeven sleutel, entry name en waarde om de registratie aan te passen.
Note
hoewel Set-ItemProperty
filter -, Include-en Exclude-parameters heeft, kan deze niet worden gebruikt om te filteren op eigenschapsnaam. Deze parameters verwijzen naar registersleutels – die zijn itempaths-en niet registervermeldingen-die item eigenschappen zijn.
een andere optie is om de Reg te gebruiken.exe command line tool. Voor hulp bij reg.exe, type reg.exe/?bij een opdrachtprompt.
het volgende voorbeeld verandert de ingang van het pad door het pad dat in het bovenstaande voorbeeld is toegevoegd te verwijderen.Get-ItemProperty
wordt nog steeds gebruikt om de huidige waarde op te halen om te voorkomen dat de omgekeerde string moet worden ontleed van reg query
. De SubString en laatste index van methoden worden gebruikt om het laatste pad toegevoegd aan de ingang van het pad op te halen.
The operation completed successfully.
nieuwe registervermeldingen aanmaken
om een nieuw item met de naam” PowerShellPath”aan de CurrentVersion-sleutel toe te voegen, gebruikt u New-ItemProperty
met het pad naar de sleutel, de naam van het item en de waarde van het item. In dit voorbeeld nemen we de waarde van de Windows PowerShell variabele $PSHome
, die het pad naar de installatiemap voor Windows PowerShell opslaat.
u kunt de nieuwe ingang aan de sleutel toevoegen met het volgende commando, en het commando geeft ook informatie terug over de nieuwe ingang:
Het eigenschapstype moet de naam van een Microsoft zijn.Win32.RegistryValueKind enumeration member uit de volgende tabel:
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 |
Note
u kunt een registervermelding toevoegen aan meerdere locaties door een reeks waarden op te geven voor de path-parameter:
u kunt ook een reeds bestaande registervermelding overschrijven door de Force-parameter toe te voegen aan elkeNew-ItemProperty
Commando.
registervermeldingen hernoemen
om de powershellpath-vermelding te hernoemen naar “PSHome,” gebruik Rename-ItemProperty
:
Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome
om de hernoemde waarde weer te geven, voegt u de parameter Pass Thru toe aan het commando.
Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome -passthru
verwijderen van registervermeldingen
om zowel de pshome-als PowerShellPath-registervermeldingen te verwijderen, gebruik Remove-ItemProperty
: