Работа с реестром Windows через PowerShell
PowerShell предоставляет удобные средства для чтения, создания, изменения и удаления ключей и значений реестра Windows.
Основные области реестра
- HKLM: HKEY_LOCAL_MACHINE → `HKLM:\`
- HKCU: HKEY_CURRENT_USER → `HKCU:\`
- HKCR: HKEY_CLASSES_ROOT → `HKCR:\`
- HKU: HKEY_USERS → `HKU:\`
- HKCC: HKEY_CURRENT_CONFIG → `HKCC:\`
Чтение значений из реестра
Пример: получить название установленной версии Windows:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name "ProductName"
Можно получить сразу все параметры:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
Создание ключей и значений
Создание нового ключа
New-Item -Path "HKCU:\Software\ITVideoDemo" -Force
Создание строкового значения (REG\_SZ)
New-ItemProperty -Path "HKCU:\Software\ITVideoDemo" -Name "TestValue" -Value "HelloWorld" -PropertyType String -Force
Создание числового значения (DWORD)
New-ItemProperty -Path "HKCU:\Software\ITVideoDemo" -Name "Count" -Value 10 -PropertyType DWord -Force
Изменение значения
Изменить существующее значение
Set-ItemProperty -Path "HKCU:\Software\ITVideoDemo" -Name "TestValue" -Value "UpdatedValue"
Удаление ключей и значений
Удаление значения
Remove-ItemProperty -Path "HKCU:\Software\ITVideoDemo" -Name "TestValue"
Удаление ключа
Remove-Item -Path "HKCU:\Software\ITVideoDemo" -Recurse -Force
Проверка существования
Проверка наличия ключа
Test-Path -Path "HKCU:\Software\ITVideoDemo"
Проверка значения вручную
$value = Get-ItemProperty -Path "HKCU:\Software\ITVideoDemo" -Name "TestValue" -ErrorAction SilentlyContinue if ($value -ne $null) { "Значение найдено" } else { "Значение не найдено" }
Импорт и экспорт реестра
PowerShell может использовать `reg.exe` для экспорта и импорта:
Экспорт ключа в .reg файл
reg export "HKCU\Software\ITVideoDemo" "C:\Backup\itvideo.reg" /y
Импорт из .reg файла
reg import "C:\Backup\itvideo.reg"
Рекомендации по безопасности
- Запускайте PowerShell от имени администратора, если работаете с HKLM.
- Используйте `-ErrorAction Stop` и `try/catch` для надежной обработки ошибок.
- Делайте резервные копии перед изменениями:
reg export "HKCU\Software" "C:\Backup\HKCU_Backup.reg" /y