PowerShell že od prve različice oskrbuje skrbnika z velikim naborom orodij za interakcijo z registrom Windows. Po želji lahko vse značilne operacije registra ne izvajate iz starega dobrega vmesnika Regedit ali reg.exe, temveč iz ukazne vrstice PowerShell. In v različnih spisih in skriptah je na splošno nenadomestljiv. V tem članku bomo pogledali, kako uporabiti PowerShell za ustvarjanje, urejanje, brisanje ključev in parametrov registra Windows, iskanje in povezovanje z registrom na oddaljenem računalniku.
Vsebina:
- Navigacija v registru z uporabo PowerShell-a
- Kako spremeniti vrednost registra
- Kako ustvariti nov razdelek (ključ) ali vpis v register
- Odstranjevanje registrskega ključa ali nastavitve
- Kako preimenovati ključ ali parameter
- Iščite v registru s programom PowerShell
- Oddaljeni dostop do registra z uporabo PowerShell-a
Navigacija v registru z uporabo PowerShell-a
Delo s sistemskim registrom v PowerShellu je podobno delu z običajnimi datotekami na lokalnem pogonu.
Naštejmo razpoložljive pogone:
get-psdrive
Kot lahko vidite, vam vgrajeni ponudnik omogoča dostop do vsebine dveh podružnic registra: HKEY_CURRENT_USER (HKCU) in HKEY_LOCAL_MACHINE (HKLM). Naslovi registrov so podobni diskom (HKLM: \ in HKCU: \) Če želite na primer odpreti koren veje HKLM, naredite:
CD HKLM: \
Pojdite do določene veje registra (na primer, ki je odgovoren za nastavitev samodejnih posodobitev gonilnikov) z ukazom Set-Location (kratek vzdevek sl)
Nastavitev lokacije-Pot HKLM: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ DriverSearching
Seznam vsebine podružnice:
dir
ali
Get-Childitem
Odprite isto vejo v urejevalniku registra. Kot vidite, je zadnji ukaz prikazal samo podatke o ugnezdenih vejah, ne pa tudi o parametrih trenutne veje.
Dejstvo je, da je z vidika PowerShell veja registra (ključ) registra analogna datoteki, parametri, shranjeni v tem registrskem ključu, pa so lastnosti te datoteke.
Zato dobite parametre, ki se nahajajo v tej veji, uporabite ukazni ukaz Get-Item:
Get-item .
ali
Get-Item-Pot HKLM: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ DriverSearching
Kot lahko vidite, ima ključ DriverSearching le en parameter - SearchOrderConfig z vrednostjo 0.
Za dostop do določenega parametra ključa uporabite ukazni ukaz Get-ItemProperty. Na primer, vsebino podružnice dodelimo določeni spremenljivki in dobimo vrednost določenega parametra:
$ DriverUpdate = Get-ItemProperty -Path "HKLM: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ DriverSearching"
$ DriverUpdate.SearchOrderConfig
Sklepamo, da je vrednost parametra SearchOrderConfig 1.
Kako spremeniti vrednost registra
Če želite spremeniti vrednost tega parametra, uporabite ukazni ukaz Set-ItemProperty:
Set-ItemProperty -Path 'HKLM: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ DriverSearching' -Name SearchOrderConfig -Value 0
Preverite, ali se je vrednost spremenila:
Get-ItemProperty -Path 'HKLM: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ DriverSearching' -Name SearchOrderConfig
Kako ustvariti nov razdelek (ključ) ali vpis v register
Če želite dodati novo vejo registra, uporabite ukaz New-Item. Ustvari novo podružnico z imenom NewKey:
$ HKCU_Desktop = "HKCU: \ Nadzorna plošča \ Namizje"
Nov predmet-Pot $ HKCU_Desktop -Ime NewKey
Za izdelano vejo dodajte nov niz parametrov z imenom SuperParamString in vrednostjo file_name.txt:
New-ItemProperty -Path $ HKCU_Desktop \ NewKey -Name "SuperParamString" -Value "file_name.txt" -PropertyType "String"
Prepričajte se, da se v registru pojavita nov ključ in parameter.
Odstranjevanje registrskega ključa ali nastavitve
Izbrišite prej ustvarjen parameter SuperParamString:
$ HKCU_Desktop = "HKCU: \ Nadzorna plošča \ Namizje"
Remove-ItemProperty -Path $ HKCU_Desktop \ NewKey -Name "SuperParamString"
Nato izbrišite celotno vejo:
Odstrani-element-Pot $ HKCU_Desktop \ NewKey -Ponovite
Če želite izbrisati vse elemente v veji, ne pa tudi samega odseka, bo ukaz tak:
Remove-Item-Pot $ HKCU_Desktop \ NewKey \ * -Ponovite
Kako preimenovati ključ ali parameter
Če želite preimenovati parameter, uporabite ukaz:
Preimenovanje-ItemProperty -path 'HKCU: \ Nadzorna plošča \ Desktop \ NewKey' -name "SuperParamString" -naime "OldParamString"
Podobno lahko preimenujete vejo registra:
Preimenovanje-pot-pot 'HKCU: \ Nadzorna plošča \ Namizje \ NewKey' OldKey
Iščite v registru s programom PowerShell
PowerShell omogoča tudi iskanje po registru. Naslednji skript išče vejo HKCU: \ Nadzorna plošča \ Desktop za parametre, ki vsebujejo tipko dpi.
$ Path = (lastnost Get-ItemProperty 'HKCU: \ Control Panel \ Desktop')
$ Path.PSObject.Properties | Predmet ForEach
Če ($ _. Ime-podobno '* dpi *')
Host za pisanje $ _. Name '=' $ _. Vrednost
Oddaljeni dostop do registra z uporabo PowerShell-a
PowerShell omogoča dostop do registra oddaljenega računalnika. Z oddaljenim računalnikom se lahko povežete prek WinRM (Invoke-Command ali Enter-PSSession):
Pokliči-ukaz -ComputerName srv-fs1 -ScriptBlock Get-ItemProperty -Path 'HKLM: \ System \ Setup' -Name WorkingDirectory
Ali prek povezave z oddaljenim registrom (storitev RemoteRegistry mora biti omogočena)
$ Server = "srv-fs1"
$ Reg = [Microsoft.Win32.RegistryKey] :: OpenRemoteBaseKey ('LocalMachine', $ Server)
$ RegKey = $ Reg.OpenSubKey ("Sistem \ Nastavitev")
$ RegValue = $ RegKey.GetValue ("WorkingDirectory")
Torej, pogledali smo značilne primere uporabe PowerShell-a za delo z registrom Windows. Kot vidite, nič zapletenega.