lucrul cu intrările de Registry

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

  1. recuperați valoarea curentă a intrării căii folosindGet-ItemProperty.
  2. adăugați noua valoare, separând-o cu un;.
  3. 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-ItemPropertycu 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:

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *