Upravljanje Windows Registry pomoću PowerShell-a

Od prve verzije PowerShell pruža administratoru veliki skup alata za interakciju s Windows registrom. Po želji, sve tipične radnje registra mogu se izvoditi ne iz starog starog sučelja Regedita ili reg.exe, već iz naredbenog retka PowerShell. A u raznim scenarijima i skriptama općenito je nezamjenjiv. U ovom ćemo članku pogledati kako koristiti PowerShell za stvaranje, uređivanje, brisanje ključeva i parametara registra Windows, pretraživanje i povezivanje s registrom na udaljenom računalu.

sadržaj:

  • Navigacija u registru pomoću PowerShell-a
  • Kako promijeniti vrijednost registra
  • Kako stvoriti novi odjeljak (ključ) ili unos u registar
  • Uklanjanje ključa registra ili postavke
  • Kako preimenovati ključ ili parametar
  • Pretražite registra pomoću PowerShell-a
  • Udaljeni pristup registru pomoću PowerShell-a

Navigacija u registru pomoću PowerShell-a

Rad s registrom sustava u PowerShellu sličan je radu s redovitim datotekama na lokalnom pogonu.

Navedimo popis dostupnih pogona:

get-psdrive

Kao što vidite, ugrađeni dobavljač omogućuje pristup sadržaju dviju grana registra: HKEY_CURRENT_USER (HKCU) i HKEY_LOCAL_MACHINE (HKLM). Podružnice registra su adresirane, slično diskovima (HKLM: \ i HKCU: \). Na primjer, da biste otišli na korijen ogranka HKLM-a, učinite:

CD HKLM: \

Možete otići do određene podružnice registra (na primjer, odgovorne za postavljanje automatskog ažuriranja upravljačkog programa) pomoću naredbe Set-Location (kratki alias sl)

Postavite lokaciju-staza HKLM: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ DriverSearching

Popis sadržaja grane:

dir

ili

Get-ChildItem

Otvorite istu granu u uređivaču registra. Kao što vidite, posljednja naredba prikazivala je samo podatke o ugniježđenim granama, ali ne i o parametrima trenutne grane.

Činjenica je da je, s gledišta PowerShell-a, grana registra (ključ) registra analogna datoteci, a parametri pohranjeni u ovom ključu registra svojstva su ove datoteke.

Stoga, za dobivanje parametara smještenih u ovoj grani, koristite cmdlet Get-Item:

Get-točka .

ili

Get-Item-Put HKLM-a: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ DriverSearching

Kao što vidite, ključ DriverSearching ima samo jedan parametar - SearchOrderConfig u vrijednosti 0.

Za pristup određenom parametru ključa koristite cmdlet Get-ItemProperty. Na primjer, dodijelimo sadržaj grane određenoj varijabli i dobijemo vrijednost određenog parametra:

$ DriverUpdate = Get-ItemProperty -Path "HKLM: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ DriverSearching"
$ DriverUpdate.SearchOrderConfig

Shvaćamo da je vrijednost parametra SearchOrderConfig jednaka.

Kako promijeniti vrijednost registra

Za promjenu vrijednosti ovog parametra, koristite cmdlet Set-ItemProperty:

Set-ItemProperty -Path 'HKLM: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ DriverSearching' -Name SearchOrderConfig -Value 0

Provjerite da li se vrijednost promijenila:

Get-ItemProperty -Path 'HKLM: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ DriverSearching' -Name SearchOrderConfig

Kako stvoriti novi odjeljak (ključ) ili unos u registar

Za dodavanje nove grane registra koristite naredbu Nova stavka. Napravite novu podružnicu pod nazivom NewKey:

$ HKCU_Desktop = "HKCU: \ Upravljačka ploča \ Desktop"
New-Item-Put $ HKCU_Desktop -Name NewKey

Za kreiranu podružnicu dodajte novi niz parametara s imenom SuperParamString i vrijednošću file_name.txt:

New-ItemProperty -Path $ HKCU_Desktop \ NewKey -Name "SuperParamString" -Value "file_name.txt" -PropertyType "String"

Provjerite jesu li se novi registar i parametar pojavili u registru.

Uklanjanje ključa registra ili postavke

Izbrišite prethodno kreiran SuperParamString parametar:

$ HKCU_Desktop = "HKCU: \ Upravljačka ploča \ Desktop"
Remove-ItemProperty -Path $ HKCU_Desktop \ NewKey -Name "SuperParamString"

A zatim izbrišite cijelu granu:

Remove-Item -Path $ HKCU_Desktop \ NewKey -Recurse

primjedba. Prekidač -Recurse kaže da morate izbrisati sve ugniježđene pododjelove rekurzivno bez potvrde

Da biste izbrisali sve elemente iz grane, ali ne i sam odjeljak, naredba će biti ovako:

Remove-Item-Put $ HKCU_Desktop \ NewKey \ * -Recurse

Kako preimenovati ključ ili parametar

Za preimenovanje parametra koristite naredbu:

Preimenuj-ItemProperty -path 'HKCU: \ Control Panel \ Desktop \ NewKey' -name "SuperParamString" -naziv "OldParamString"

Slično tome, možete preimenovati podružnicu registra:

Preimenovanje-put-put 'HKCU: \ Upravljačka ploča \ Desktop \ NewKey' OldKey

Pretražite registra pomoću PowerShell-a

PowerShell vam također omogućuje pretraživanje registra. Sljedeća skripta pretražuje granu HKCU: \ Upravljačka ploča \ Desktop za parametre koji sadrže tipku dpi.

$ Path = (Get-ItemProperty 'HKCU: \ Upravljačka ploča \ Desktop')
$ Path.PSObject.Properties | ForEach-Objekt
Ako je ($ _. Ime-slično '* dpi *')
Host pisanja $ _. Ime '=' $ _. Vrijednost

Udaljeni pristup registru pomoću PowerShell-a

PowerShell omogućava pristup registru udaljenog računala. Na udaljeno računalo možete se povezati putem WinRM-a (Invoke-Command ili Enter-PSSession):

Invoke-Command -ComputerName srv-fs1 -ScriptBlock Get-ItemProperty -Path 'HKLM: \ System \ Setup' -Name WorkingDirectory

Ili povezivanjem s udaljenim registrom (usluga RemoteRegistry mora biti omogućena)

$ Server = "srv-fs1"
$ Reg = [Microsoft.Win32.RegistryKey] :: OpenRemoteBaseKey ('LocalMachine', $ Server)
$ RegKey = $ Reg.OpenSubKey ("Sustav \ Postavljanje")
$ RegValue = $ RegKey.GetValue ("WorkingDirectory")

vijeće. Ako trebate stvoriti / izmijeniti određenu postavku registra na mnogim računalima domena, lakše je koristiti GPO značajke.

Stoga smo pogledali tipične primjere korištenja PowerShell-a za rad s Windows registrom. Kao što vidite, ništa komplicirano.