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
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")
Pozreli sme sa na typické príklady použitia PowerShell na prácu s registrom Windows. Ako vidíte, nič komplikované.