Рубрики
Powershell

Powershell реестр windows

введение:

HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_ MACHINE, HKEY_USERS и HKEY_CURRENT_CONFIG
Файлы находятся в папке %SystemRoot%\System32\Config, 
где %SystemRoot% — папка, куда установлена Windows.

Файл Ntuser.dat создается для каждого пользователя и хранит его настройки 
находится в %SystemDrive%\Documents and Settings\%Username% (Windows XP) 
или %SystemDrive%\Users\%Username% (для систем начиная с Vista), 
где %Username% — имя пользователя.

Реестр Windows состоит из пяти так называемых корневых разделов (root keys)

ФАЙЛ -> КУСТ
SAM	-> HKEY_LOCAL_MACHINE\SAM
SECURITY -> HKEY_LOCAL_MACHINE\SECURITY
SOFTWARE -> HKEY_LOCAL_MACHINE\SOFTWARE
SYSTEM -> HKEY_LOCAL_MACHINE\SYSTEM
SYSTEM -> HKEY_CURRENT_CONFIG
DEFAULT -> HKEY_USERS\.DEFAULT
Ntuser.dat -> HKEY_CURRENT_USER

HKEY_LOCAL_MACHINE

Содержит глобальную информацию о компьютерной системе, 
включая такие данные об аппаратных средствах и операционной системе, 
в том числе: тип шины, системная память, драйверы устройств и управляющие данные, 
используемые при запуске системы. Информация, содержащаяся в этом разделе, 
действует применительно ко веем пользователям, регистрирующимся в системе.

HKEY_CLASSES_ROOT

Содержит ассоциации между приложениями и типами файлов (по расширениям имени файла).

HKEY_CURRENT_CONFIG

Содержит конфигурационные данные для текущего аппаратного профиля. 
Аппаратные профили представляют собой наборы изменений, 
внесенных в стандартную конфигурацию сервисов и устройств, 
установленную данными разделов Software и System корневого раздела HKEY_LOCAL_MACHINE. 

В разделе HKEY_CURRENT_CONFIG отражаются только изменения. 

Кроме того, параметры этого раздела появляются также в разделе 
HKEY_LOCAL_MACHINE\System\CurentControlSet\HardwareProfites\Current

HKEY_CURRENT_USER

Содержит, профиль пользователя, на данный момент. 
зарегистрировавшегося в системе, включая переменные окружения, 
настройку рабочего стола, параметры настройки сети, 
принтеров и приложений. 

Этот раздел представляет собой ссылку на раздел HKEY USERS\username, 
где username — имя пользователя, зарегистрировавшегося в системе 
на текущий момент.

HKEY_USERS

Содержит все активно загруженные пользовательские профили, включая HKEY_CURRENT_USER, а также профиль по умолчанию. 

Раздел HKEY_USERS содержит вложенный раздел Default, а также другие разделы, 
определяемые идентификатором безопасности (Security ID) каждого пользователя.

Допустимые для создания элементы:

ItemType -> Description -> DataType
String -> A string -> REG_SZ
ExpandString -> A string with environment variables that are resolved when invoked -> REG_EXPAND_SZ
Binary -> Binary values -> REG_BINARY
DWord -> Numeric values -> REG_DWORD
MultiString -> Text of several lines -> REG_MULTI_SZ
QWord -> 64-bit numeric values -> REG_QWORD

Команды ля работы с реестром:

Get-PSDrive - список дисков
Get-PSDrive -PSProvider Registry - список дисков от провайдера Registry

Set-Location HKLM:\SOFTWARE - перейти HKLM:\SOFTWARE
cd HKLM:\SOFTWARE - перейти HKLM:\SOFTWARE

New-PSDrive -name HKCR -PSProvider registry -root HKLM:\SOFTWARE\ClassesDir HKCR: - создание нового диска HKCR ссылкой на HKEY_LOCAL_MACHINE\SOFTWARE\Classes
Remove-PSDrive HKCR - удаление созданного диска производится командой Remove-PSDrive

Get-ChildItem HKLM: -recurse -include *PowerShell* -поиск в реестре, найдет все где присутствует ключевое слово *PowerShell*

New-Item -Path HKCU:\Environment\NewKey - создаем новый элемент
New-Item —type Directory HKCU:\Environment\NewKey—1 - создаем новый элемент

md HKCU:\Environment\NewKey—2 - создаем новый элемент

Set-Location HKCU:\Environment - переходим в "папку"

Copy-Item -Path HKCU:\Environment\NewKey .\NewKey2 - создаем копию созданного ранее ключа

Rename-Item -Path HKCU:\Environment\NewKey2 -NewName RenameKey2 - переименовываем
Remove-Item -Path HKCU:\Environment\NewKey - удаляем старый

del HKCU:\Environment\NewKey - удаляем старый

New-ItemProperty -PropertyType String -Path HKCU:\Environment -name NewKey -Value "NewParam" - создаем новое значение

Set-ItemProperty -Path  .\ -name "NewParam" -Value "UpdatedParam" - меняем значение у существующего элемента
Rename-ItemProperty -Path  .\ -name "NewParam" -NewName "TestParam" -  переименовываем параметр
Remove-ItemProperty -Path .\ -name newkey - Удаляем параметр