Upravljanje registra Windows s programom PowerShell

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

Opomba. Preklopnik -Recurse pravi, da morate izbrisati vse ugnezdene pododdelke rekurzivno brez potrditve

Č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")

Namig. Če morate ustvariti / spremeniti določeno nastavitev registra v mnogih računalnikih domene, je lažja uporaba funkcij GPO.

Torej, pogledali smo značilne primere uporabe PowerShell-a za delo z registrom Windows. Kot vidite, nič zapletenega.