- 06/05/2017
- 5 minutter å lese
- j
- k
- m
- b
s
fordi registeroppføringer er egenskaper for nøkler og som sådan ikke kan leses direkte, trenger viå ta en litt ulike tilnærminger Når Du Arbeider Med Dem.
Liste Registeroppføringer
det er mange forskjellige måter å undersøke registeroppføringer. Den enkleste måten er å få eiendommennavn knyttet til en nøkkel. Hvis du for eksempel vil se navnene på oppføringene i registernøkkelenHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
, bruker du Get-Item
. Registernøkklerha en egenskap med det generiske navnet «Egenskap» som er en liste over registeroppføringer i nøkkelen.Følgende kommando velger Egenskapen eiendom og utvider elementene slik at de vises i en liste:
DevicePathMediaPathUnexpandedProgramFilesDirCommonFilesDirProductId
for å vise registeroppføringene i en mer lesbar form, brukGet-ItemProperty
:
Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
Windows PowerShell-relaterte egenskaper for nøkkelen er alle prefiks med «PS», for eksempel asPSPath, PSParentPath pschildname og psprovider.
du kan bruke *.*
notasjonen for å referere til gjeldende plassering. Du kan bruke Set-Location
for å endre til CurrentVersion registerbeholderen Først:
Set-Location -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
Alternativt kan du bruke den innebygde HKLM PSDrive med Set-Location
:
Set-Location -Path hklm:\SOFTWARE\Microsoft\Windows\CurrentVersion
du kan deretter bruke *.*
nåværende plassering for å liste egenskapene uten å spesifisere en full bane:
Get-ItemProperty -Path .
...DevicePath : C:\WINDOWS\infMediaPathUnexpanded : C:\WINDOWS\MediaProgramFilesDir : C:\Program Files...
baneutvidelse fungerer på samme måte som det gjør i filsystemet, så fra dette stedet kan du getthe itemproperty oppføring For HKLM:\SOFTWARE\Microsoft\Windows\Help
ved å brukeGet-ItemProperty -Path ..\Help
.
Få En Enkelt Registeroppføring
hvis du vil hente en bestemt oppføring i en registernøkkel, kan du bruke en av flere possibleapproaches. Dette eksemplet finner Verdien Av DevicePath iHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
.
BrukGet-ItemProperty
, bruk path-parameteren til å angi navnet på nøkkelen, ognavn parameter for å angi navnet På devicepath-oppføringen.
Get-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion -Name DevicePath
denne kommandoen returnerer standard Windows PowerShell-egenskaper samt DevicePathproperty.
Merk
Selv omGet-ItemProperty
Har Filter, Inkluderer og Ekskluderer parametere, kan de ikke brukes til å filtrere etter egenskapsnavn. Disse parameterne refererer til registernøkler, som er itempaths og ikke registeroppføringer, som er elementegenskaper.
Et annet alternativ er å bruke Reg.exe kommandolinjeverktøy. For hjelp med reg.exe, skriv reg.exe /?
ved en ledetekst. For å finne DevicePath-oppføringen, bruk reg.exe som vist i følgende kommando:
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion /v DevicePath
Du kan også bruke wshshell COM-objektet også for å finne noen registeroppføringer, selv om denne metoden ikke fungerer med store binære data eller med registeroppføringsnavn som inneholder tegn som»\»). Tilføy egenskapsnavnet til varebanen med en \ separator:
(New-Object -ComObject WScript.Shell).RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DevicePath")
%SystemRoot%\inf
Angi En Enkelt Registeroppføring
hvis du vil endre en bestemt oppføring i en registernøkkel, kan du bruke en av flere possibleapproaches. Dette eksemplet endrer Baneoppføringen under HKEY_CURRENT_USER\Environment
. ThePath oppføring angir hvor du finner kjørbare filer.
- Hent gjeldende verdi for Baneoppføringen ved hjelp av
Get-ItemProperty
. - Legg til den nye verdien, skille den med en
;
. - Bruk
Set-ItemProperty
med angitt nøkkel, oppføringsnavn og verdi for å endre registryentry.
Merk
Selv omSet-ItemProperty
har Filter, Inkludere og Ekskludere parametere, kan de ikke brukes til å filtrere etter egenskapsnavn. Disse parameterne refererer til registernøkler – som er itempaths – og ikke registeroppføringer-som er elementegenskaper.
Et annet alternativ er å bruke Reg.exe kommandolinjeverktøy. For hjelp med reg.exe, skriv inn reg.exe /?ved en ledetekst.
følgende eksempel endrer Baneoppføringen ved å fjerne banen som er lagt til i eksemplet ovenfor.Get-ItemProperty
brukes fortsatt til å hente gjeldende verdi for å unngå å måtte analysere stringreturned fra reg query
. SubString-og LastIndexOf-metodene brukes til å hente den siste banen som er lagt til I Baneoppføringen.
The operation completed successfully.
Opprette Nye Registeroppføringer
for å legge til En ny oppføring kalt «PowerShellPath» Til CurrentVersion-nøkkelen, bruk New-ItemProperty
med banen til nøkkelen, oppføringsnavnet og verdien av oppføringen. For dette eksemplet vil vita verdien Av windows PowerShell-variabelen $PSHome
, som lagrer banen tilinstallasjonskatalogen For Windows PowerShell.
du kan legge til den nye oppføringen i nøkkelen ved å bruke følgende kommando, og kommandoen returnerer ogsåinformasjon om den nye oppføringen:
PropertyType må være Navnet På En Microsoft.Win32.RegistryValueKind opplisting medlemfra følgende tabell:
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 |
Merk
Du kan legge til en registeroppføring på flere steder ved å angi en matrise med verdier for path-parameteren:
du kan også overskrive en eksisterende registeroppføringsverdi ved å legge Til Force-parameteren til en hvilken som helstNew-ItemProperty
kommando.
Gi Nytt Navn Til Registeroppføringer
for Å gi Nytt Navn Til PowerShellPath-oppføringen til «PSHome», brukRename-ItemProperty
:
Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome
for å vise den omdøpte verdien, legg Til PassThru-parameteren i kommandoen.
Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome -passthru
Slette Registeroppføringer
hvis du vil slette både pshome-og PowerShellPath-registeroppføringene, bruker duRemove-ItemProperty
: