Werken met registervermeldingen

  • 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-Locationgebruiken 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.

  1. haal de huidige waarde van de ingang van het pad op met Get-ItemProperty.
  2. voeg de nieuwe waarde toe door deze te scheiden met een ;.
  3. 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-ItemPropertymet 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:

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *