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
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")
Stoga smo pogledali tipične primjere korištenja PowerShell-a za rad s Windows registrom. Kao što vidite, ništa komplicirano.