- 06/05/2017
- 5 minute pentru a citi
-
- j
- s
- k
- m
- b
deoarece intrările de registry sunt proprietăți ale cheilor și, ca atare, nu pot fi accesate direct, avem nevoiepentru a lua o abordați-vă atunci când lucrați cu ei.
listarea intrările de Registry
există mai multe moduri diferite de a examina intrările de registry. Cea mai simplă cale este de a obține proprietateanumele asociate cu o cheie. De exemplu, pentru a vedea numele intrărilor din cheia de registryHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
, utilizați Get-Item
. Registru keyshave o proprietate cu numele generic de „proprietate”, care este o listă de intrări de registry în cheia.Următoarea comandă Selectează proprietatea proprietății și extinde elementele astfel încât acestea să fie afișate într-o listă:
DevicePathMediaPathUnexpandedProgramFilesDirCommonFilesDirProductId
pentru a vizualiza intrările de registry într-o formă mai ușor de citit, utilizați Get-ItemProperty
:
Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
proprietățile Windows PowerShell legate de cheia sunt toate prefixate cu „PS”, cum ar asPSPath, PSParentPath, pschildname, și psprovider.
puteți utiliza notația*.*
pentru a face referire la locația curentă. Puteți utiliza Set-Location
pentru a trece mai întâi la containerul registrului CurrentVersion:
Set-Location -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
alternativ, puteți utiliza PSDrive-ul HKLM încorporat cu Set-Location
:
Set-Location -Path hklm:\SOFTWARE\Microsoft\Windows\CurrentVersion
puteți utiliza apoi notația *.*
locația curentă pentru a lista proprietățile fără a specifica o cale completă:
Get-ItemProperty -Path .
...DevicePath : C:\WINDOWS\infMediaPathUnexpanded : C:\WINDOWS\MediaProgramFilesDir : C:\Program Files...
extinderea căii funcționează la fel ca în sistemul de fișiere, astfel încât din această locație puteți obțineelistarea ItemProperty pentru HKLM:\SOFTWARE\Microsoft\Windows\Help
utilizândGet-ItemProperty -Path ..\Help
.
obținerea unei singure intrări de Registry
Dacă doriți să preluați o anumită intrare într-o cheie de registry, puteți utiliza una dintre mai multe abordări posibile. Acest exemplu găsește valoarea DevicePath înHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
.
folosindGet-ItemProperty
, utilizați parametrul Path pentru a specifica numele cheii și apoi parametrul nume pentru a specifica numele intrării DevicePath.
Get-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion -Name DevicePath
această comandă returnează proprietățile Standard Windows PowerShell, precum și DevicePathproperty.
notă
deșiGet-ItemProperty
are parametri de filtrare, includere și excludere, nu pot fi folosiți pentru a filtra după numele proprietății. Acești parametri se referă la cheile de registry, care sunt itempaths și nu intrările de registry, care sunt proprietăți element.
o altă opțiune este utilizarea Reg.instrument de linie de comandă exe. Pentru ajutor cu reg.exe, tastați reg.exe /?
la un prompt de comandă. Pentru a găsi intrarea DevicePath, utilizați reg.exe așa cum se arată în următoarea comandă:
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion /v DevicePath
puteți utiliza, de asemenea, obiectul WSHSHELL COM, precum și pentru a găsi unele intrări de registry, deși thismethod nu funcționează cu date binare mari sau cu nume de intrare de registry care includ caractere, cum ar fi „\”). Adăugați numele proprietății la calea elementului cu un \ separator:
(New-Object -ComObject WScript.Shell).RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DevicePath")
%SystemRoot%\inf
setarea unei singure intrări de Registry
Dacă doriți să modificați o anumită intrare într-o cheie de registry, puteți utiliza una dintre mai multe abordări posibile. Acest exemplu modifică intrarea căii subHKEY_CURRENT_USER\Environment
. ThePath intrare specifică în cazul în care pentru a găsi fișiere executabile.
- recuperați valoarea curentă a intrării căii folosind
Get-ItemProperty
. - adăugați noua valoare, separând-o cu un
;
. - utilizați
Set-ItemProperty
cu cheia specificată, numele de intrare și valoarea pentru a modifica registryentry.
notă
deșiSet-ItemProperty
are parametri de filtrare, includere și excludere, acestea nu pot fi utilizate pentru a filtra după numele proprietății. Acești parametri se referă la cheile de registry—care sunt itempaths—și nu intrările de registry-care sunt proprietăți element.
o altă opțiune este utilizarea Reg.instrument de linie de comandă exe. Pentru ajutor cu reg.exe, tip reg.exe/?la un prompt de comandă.
următorul exemplu modifică intrarea căii prin eliminarea căii adăugate în exemplul de mai sus.Get-ItemProperty
este încă folosit pentru a prelua valoarea curentă pentru a evita analizarea stringreturned de lareg query
. Metodele subșir și LastIndexOf sunt utilizate pentru a prelua ultima cale adăugată la intrarea Path.
The operation completed successfully.
crearea de noi intrări de Registry
pentru a adăuga o nouă intrare numită „PowerShellPath” la cheia CurrentVersion, utilizațiNew-ItemProperty
cu calea către cheie, numele intrării și valoarea intrării. Pentru acest exemplu, vomia valoarea variabilei Windows PowerShell$PSHome
, care stochează calea cătredirectorul de instalare Pentru Windows PowerShell.
puteți adăuga noua intrare la cheie utilizând următoarea comandă, iar comanda returnsinformation despre noua intrare:
PropertyType trebuie să fie numele unui Microsoft.Win32.RegistryValueKind membru enumeraredin tabelul următor:
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 |
notă
puteți adăuga o intrare de registry în mai multe locații specificând o serie de valori pentru parametrul thePath:
de asemenea, puteți suprascrie o valoare de intrare de registry preexistentă adăugând parametrul Force la oriceNew-ItemProperty
comandă.
redenumirea intrărilor de Registry
pentru a redenumi intrarea PowerShellPath în „PSHome”, utilizațiRename-ItemProperty
:
Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome
pentru a afișa valoarea redenumită, adăugați parametrul PassThru la comandă.
Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome -passthru
ștergerea intrărilor de Registry
pentru a șterge atât intrările de registry PSHome și PowerShellPath, utilizați Remove-ItemProperty
: