Správa registra Windows pomocou programu PowerShell

Od prvej verzie poskytuje PowerShell správcovi veľkú sadu nástrojov na interakciu s registrom Windows. Ak je to potrebné, všetky typické operácie registra nie je možné vykonať z dobrého starého rozhrania Regedit alebo z nástroja.exe, ale z príkazového riadka PowerShell. A v rôznych skriptoch a skriptoch je to spravidla nenahraditeľné. V tomto článku sa zameriame na to, ako používať PowerShell na vytváranie, úpravu, mazanie kľúčov a parametrov registra Windows, vyhľadávanie a pripojenie k registru na vzdialenom počítači..

obsah:

  • Navigácia v registri pomocou PowerShell
  • Ako zmeniť hodnotu registra
  • Ako vytvoriť nový oddiel (kľúč) alebo položku v registri
  • Odstránenie kľúča alebo nastavenia registra
  • Ako premenovať kľúč alebo parameter
  • Prehľadajte register pomocou PowerShell
  • Vzdialený prístup do registra pomocou PowerShell

Navigácia v registri pomocou PowerShell

Práca s registrom systému v PowerShell je podobná práci s bežnými súbormi na lokálnej jednotke.

Uvádzame zoznam dostupných jednotiek:

get-psdrive

Ako vidíte, vstavaný poskytovateľ vám umožňuje prístup k obsahu dvoch vetiev registra: HKEY_CURRENT_USER (HKCU) a HKEY_LOCAL_MACHINE (HKLM). Adresy vetiev registra sú adresované podobne ako disky (HKLM: \ a HKCU: \). Napríklad, ísť do koreňa vetvy HKLM, vykonajte:

cd HKLM: \

Môžete prejsť na konkrétnu vetvu registra (napríklad zodpovednú za nastavenie automatických aktualizácií ovládačov) pomocou príkazu Set-Location (short alias sl)

Miesto setu - cesta HKLM: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ DriverSearching

Zoznam obsahu vetvy:

dir

alebo

Get-ChildItem

Otvorte tú istú vetvu v editore registra. Ako vidíte, posledný príkaz zobrazoval iba informácie o vnorených vetvách, ale nie o parametroch aktuálnej vetvy.

Faktom je, že z hľadiska PowerShell je vetva registra (kľúč) analógom súboru a parametre uložené v tomto kľúči registra sú vlastnosťami tohto súboru..

Ak chcete získať parametre umiestnené v tejto vetve, použite rutinu Get-Item:

Get-Item .

alebo

Get-Item -Path HKLM: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ DriverSearching

Ako vidíte, kľúč DriverSearching má iba jeden parameter - SearchOrderConfig s hodnotou 0.

Ak chcete získať prístup ku konkrétnemu parametru kľúča, použite cmdlet Get-ItemProperty. Napríklad priraďujeme obsah vetvy určitej premennej a získame hodnotu konkrétneho parametra:

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

Zistíme, že hodnota parametra SearchOrderConfig je 1.

Ako zmeniť hodnotu registra

Ak chcete zmeniť hodnotu tohto parametra, použite rutinu Set-ItemProperty:

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

Skontrolujte, či sa hodnota zmenila:

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

Ako vytvoriť nový oddiel (kľúč) alebo položku v registri

Ak chcete pridať novú vetvu registra, použite príkaz Nová položka. Vytvorte novú vetvu s názvom NewKey:

$ HKCU_Desktop = "HKCU: \ Control Panel \ Desktop"
Nová položka - cesta $ HKCU_Desktop - meno NewKey

Pre vytvorenú vetvu pridajte nový parameter reťazca s názvom SuperParamString a hodnotou file_name.txt:

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

Uistite sa, že sa v registri objaví nový kľúč a parameter.

Odstránenie kľúča alebo nastavenia registra

Odstráňte predtým vytvorený parameter SuperParamString:

$ HKCU_Desktop = "HKCU: \ Control Panel \ Desktop"
Remove-ItemProperty -Path $ HKCU_Desktop \ NewKey - Názov "SuperParamString"

A potom odstráňte celú vetvu:

Odstrániť položku - cesta $ HKCU_Desktop \ NewKey -Recurse

poznámka. Prepínač -Recurse hovorí, že musíte všetky vnorené podsekcie odstrániť rekurzívne bez potvrdenia

Ak chcete odstrániť všetky prvky vo vetve, ale nie samotnú časť, príkaz bude nasledujúci:

Odstránenie položky - cesta $ HKCU_Desktop \ NewKey \ * -Recurse

Ako premenovať kľúč alebo parameter

Ak chcete premenovať parameter, použite príkaz:

Premenovať-ItemProperty - cesta 'HKCU: \ Control Panel \ Desktop \ NewKey' - meno "SuperParamString" - meno "OldParamString"

Podobne môžete premenovať vetvu registra:

Premenovať položku - cesta 'HKCU: \ Ovládací panel \ Desktop \ NewKey' OldKey

Prehľadajte register pomocou PowerShell

PowerShell vám tiež umožňuje prehľadávať register. Nasledujúci skript vyhľadáva v vetve HKCU: \ Control Panel \ Desktop parametre, ktoré obsahujú kľúč dpi.

$ Path = (Get-ItemProperty 'HKCU: \ Control Panel \ Desktop')
$ Path.PSObject.Properties | ForEach-Object
Ak ($ _. Meno podobné * * dpi * ')
Write-Host $ _. Name '=' $ _. Hodnota

Vzdialený prístup do registra pomocou PowerShell

PowerShell vám umožňuje prístup k registru vzdialeného počítača. K vzdialenému počítaču sa môžete pripojiť pomocou WinRM (Invoke-Command alebo Enter-PSSession):

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

Alebo prostredníctvom pripojenia k vzdialenému registru (služba RemoteRegistry musí byť povolená)

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

rada. Ak potrebujete vytvoriť / upraviť konkrétne nastavenie registra na mnohých počítačoch s doménami, je ľahšie používať funkcie GPO.

Pozreli sme sa na typické príklady použitia PowerShell na prácu s registrom Windows. Ako vidíte, nič komplikované.