Редактирование системного реестра Windows – полезное умение в руках каждого пользователя. В статье Изменение параметров cистемного реестра Windows мы познакомились с самим реестром, его структурой и рассмотрели примеры с изменениями параметров его ключей. Сегодня мы поговорим о том, как автоматизировать процесс правки реестра и сделать его удобнее и быстрее.
На нашем ресурсе уже есть публикация, описывающая основной способ работы с системным реестром Windows: Изменение параметров cистемного реестра Windows. Также мы рассматривали способ автоматизации процесса при помощи специальных файлов: Создание reg-файлов. Синтаксис редактирования записей реестра – позволяющий значительно упростить монотонную работу и воспроизведение часто используемых настроек. В рамках данной статьи мы затронем логическое продолжение темы, а именно, поговорим о том, как редактировать реестр из командной строки.
Работа с реестром из командной строки
Работа с реестром возможна не только через утилиту regedit.exe
, но и напрямую из командной строки с помощью утилиты REG
, она поддерживает все возможности, которые имеет программа regedit.exe
. И более того — она также поддерживает несколько особенных функций. Полезна в том случае когда работа с regedit
по каким либо причинам невозможна.
К тому же это позволяет автоматизировать многие рутинные задачи и встраивать команды в скрипты.
Основной синтаксис
В общем виде синтаксис команды REG
выглядит следующим образом:
REG <процедура> [список параметров]
Всего существует одиннадцать процедур, которые способна выполнять директива REG
: QUERY
, ADD
, DELETE
, COPY
, SAVE
, LOAD
, UNLOAD
, RESTORE
, COMPARE
, EXPORT
, IMPORT
. Каждая из этих процедур имеет, как правило, собственный набор параметров.
При вызове из командной строки директива REG
пересылает в окружение операционной системы так называемый код возврата: сообщение об успешном или неуспешном выполнении операции. Если код возврата равен 0
, это означает, что операция была выполнена успешно, если же она завершилась с ошибкой, код возврата будет равен 1
.
Более подробные сведения об использовании утилиты REG
вы можете получить, набрав в командной строке директиву REG /?
, чтобы получить информацию о какой-либо из перечисленных процедур, воспользуйтесь командой REG <процедура> /?
.
Сокращения
Для удобства ввода применяются сокращения названий веток реестра. Все сокращения представлены в таблице ниже:
Сокращения названий веток реестра
Ветка | Сокращение |
---|---|
HKEY_CLASSES_ROOT | HKCR |
HKEY_CURRENT_USER | HKCU |
HKEY_LOCAL_MACHINE | HKLM |
HKEY_USERS | HKU |
HKEY_CURRENT_CONFIG | HKCC |
Вывод содержимого ветвей (QUERY)
Команда REG QUERY
отправляет в системный реестр Windows запрос о содержимом ветвей, ключей, подразделов или параметров, и выводит на экран результат обработки этих запросов. В общем виде синтаксис данной команды записывается следующим образом:
REG QUERY [\Компьютер\]Путь [/v Параметр | /ve] [/s]
В составе директивы могут использоваться следующие параметры:
Компьютер
— имя компьютера в локальной сети, если директива предназначена для обработки на удаленном компьютере. В случае, если этот параметр опущен, команда выполняется на локальном компьютере.Путь
— полный путь к целевому разделу реестра в видекорень\ключ\подраздел
, где корень – сокращенное обозначение ветви реестра (HKLM
,HKCU
,HKCR
,HKU
илиHKCC
), аключ\подраздел
– полный путь к искомому подразделу в иерархии реестра, включая все вложенные подразделы./v
— запрос о содержимом указанного раздела реестра.Параметр
— вывести имя и значение запрашиваемого параметра в указанном разделе./ve
— запрос стандартного параметра с пустым именем./s
— вывести список всех подразделов данного раздела реестра вместе с их содержимым.
В качестве примера получим содержимое ветки в которой хранятся закрытые ключи квалифицированных электронных подписей:
reg query "HKLM\SOFTWARE\Crypto Pro\Settings\Users\S-1-5-21-2889205033-3114528180-1522031737-1000\Keys"
Note
Лучше вводить путь в кавычках.
Будет выведен примерно такой результат:
HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\Users\S-1-5-21-2889205033-3114528180-1522031737-1000\Keys def.key REG_BINARY 300E0C0C415A415A415F6E6F70617373 HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\Users\S-1-5-21-2889205033-3114528180-1522031737-1000\Keys\2015ZAO_
Как видно из вывода, в реестре компьютера находится всего один контейнер 2015ZAO_
.
Экспорт и импорт веток реестра (EXPORT и IMPORT)
Для экспорта используется команда EXPORT
. Синтаксис команды:
REG EXPORT <имя_раздела> <имя_файла> [/y]
имя_раздела
— полное имя подраздела реестра в одном из выбранных корневых разделов.имя_файла
— имя.reg
файла, который получится после экспорта.- Параметр
/y
в конце команды позволяет выполнение замены существующего файла без запроса подтверждения.
Экспортируем контейнеры закрытых ключей на рабочий стол:
reg export "hklm\SOFTWARE\Crypto Pro\Settings\Users\S-1-5-2-1-2889205033-3114528180-1522031737-1000\Keys" C:\Users\Dmitry\Desktop\keys.reg /y Операция успешно завершена.
Вся ветка с контейнерами успешно экспортирована на рабочий стол и сохранена в файле keys.reg
. Теперь импортируем ее обратно.
Note
Команда доступна только для выполнения на локальном компьютере.
Для импорта используется команда IMPORT
. Синтаксис команды:
REG IMPORT <имя_файла>
Выполним:
reg import C:\Users\747\Desktop\keys.reg Операция успешно завершена.
Напомню, что для экспорта ветки на другом компьютере, необходимо будет изменить в файле keys.reg
путь к ветке реестра с учетом разрядности операционной системы и SID
текущего пользователя. Подробнее об импорте и экспорте закрытых ключей смотрите в Руководстве по работе с реестром ОС Windows в разделе Где хранятся ключи(закрытый ключ сертификата) в реестре? [1739].
Создание резервной копии реестра (SAVE и RESTORE)
Для резервного копирования и восстановления реестра используются следующие команды (типы операций) утилиты REG SAVE
и REG RESTORE
:
REG SAVE <имя_раздела> <имя_файла> [/y] REG RESTORE <имя_раздела> <имя_файла>
Note
В данному разделе перечислены основные команды утилиты REG
для получения более подробной информации обратитесь к ресурсам, перечисленным в разделе Дополнительные ссылки
Дополнительные ссылки
- Основы работы с реестром – Утилита reg.exe
- Управление реестром с помощью командной строки
- Руководство по работе с командной строкой ОС Windows
Удаление веток реестра reg-файлом
Выше мы рассмотрели синтаксис registry-файлов для добавления и изменения параметров. Но как писать файл, если нам надо удалить хвосты в реестре, допустим, после деинсталляции программы.
Пример конкретных программ рассматривать не будем, а решим задачу по удалению из окна Проводника на вкладке Мой компьютер лишних папок: Видео, Документы, Загрузки, Изображения, Музыка, Рабочий стол
Пишем reg-файл, в котором перед каждой веткой для удаления ставим минус:
Windows Registry Editor Version 5.00 ; Удаление папки "Рабочий стол" [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}] ; Удаление папки "Документы" [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}] ; Удаление папки "Загрузки" [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{374DE290-123F-4565-9164-39C4925E467B}] ; Удаление папки "Музыка" [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{1CF1260C-4DD0-4ebb-811F-33C572699FDE}] ; Удаление папки "Изображения" [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3ADD1653-EB32-4cb0-BBD7-DFA0ABB5ACCA}] ; Удаление папки "Видео" [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A0953C92-50DC-43bf-BE83-3742FED03C9C}]
И по традиции готовый файл редактирования реестра: folders_remove
Работа с реестром из командной строки
Синтаксис бат-файлов и процесс их создания описан в статье, приведённой выше, в данной же публикации затронем исключительно тему, касающуюся выполнения функции изменения реестра из командной строки.
Сразу отметим, что в bat-файлах не требуется заголовок в начале файла по типу того, что используется в reg-файлах: Windows Registry Editor Version 5.00 – здесь можно начинать писать команду с первой же строки.
Для начала приведём основные параметры, используемые при работе с реестром из командной строки:
- /v – имя добавляемого/изменяемого ключа;
- /ve – добавление пустого параметра;
- /t – параметр для указания типа добавляемых/изменяемых данных;
- /d – значение, присваиваемое параметру;
- /s – применение команды ко всем вложенным ключам;
- /f – отключение системных предупреждений при выполнении операции.
Но, конечно, основа любого батника Windows – сама команда. Итак, приведём список команд, используемых для редактирования реестра.
reg add – команда для добавления данных, будь то параметры, ключи или целые ветки.
Допустим, после вирусной атаки нам необходимо вернуть место хранения hosts файла (а также файлов lmhosts, networks и protocols) в директорию %SystemRoot%\System32\drivers\etc\ Для этого нужно выполнить команду:
reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v DataBasePath /t REG_EXPAND_SZ /d %%SystemRoot%%\System32\drivers\etc /f
Если немного применить фантазию и оформить батник, то код будет выглядеть примерно следующим образом:
@echo off ::батник для возврата хранения файлов hosts, lmhosts, networks, protocols в %SystemRoot%\System32\drivers\etc echo *** returns the directory system files by miradmin.ru *** reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v DataBasePath /t REG_EXPAND_SZ /d %%SystemRoot%%\System32\drivers\etc /f echo *** directory returned *** echo *** done *** pause
Вот такой файл, как в архиве, у нас получится: drivers_etc
Остальные примеры в данной статье будем приводить вымышленные, дабы при их тестировании не вносить нежелательных изменений в реестр
reg delete – команда для удаления указанной информации из реестра компьютера.
Чтобы удалить определённый параметр, нам достаточно указать его полный путь после команды удаления. Пример:
reg delete HKLM\Software\Games\Football\User1 /v Save
Данная команда удалит параметр Save из указанной ветки.
reg copy – команда для копирования параметров и ключей из одной ветки реестра в другую.
Для копирования параметров достаточно после команды последовательно прописать сначала исходную ветку, а потом изменяемую. Например:
reg copy HKLM\Software\Games\Football\User1 HKLM\Software\Games\Football\User2 /s
Данная команда скопирует всю информацию из ветки User1 в ветку User2.
reg export – команда для экспорта указанных веток реестра в виде *.reg файла на жёсткий диск.
Пример использования:
reg export HKLM\Software\Games\Football MyBackup.reg
В результате выполнения данной команды будет создан рег-файл с бэкапом раздела Football.
reg import – команда, позволяющая импортировать данные из reg-файла в реестр системы.
Пример использования:
reg import MyBackup.reg
В результате выполнения данной команды записи из рег-файла будут импортированы в реестр.
reg query – данная команда возвращает значение запрашиваемых параметров и кустов реестра.
Пример использования:
reg query HKLM\Software\Games\Football /v Run
В ответ будет возвращено значение параметра Run в реестре.
reg compare – команда позволяет сравнить две указанные последовательно ветки реестра.
Пример использования:
reg compare HKLM\Software\Games\Football\User1 HKLM\Software\Games\Football\User2
В ответ команда возвращает одно из значений: 0 – данные веток идентичны; 1 – при выполнении операции произошла ошибка; 2 – данные веток отличаются.
reg load, reg unload, reg save, reg restore – команды, позволяющие бэкапить и восстанавливать нужные ветки системного реестра Windows при помощи файлов *.hiv.
Содержание статьи
Точнее сказать, мы, разумеется, не будем раз за разом вручную прописывать нужные параметры в окне консоли, не для этого данный способ нужен, мы рассмотрим вариант внесения изменений в системный реестр Windows при помощи bat-файлов.
Достаточно подробно о создании и использовании батников речь шла в записи Пакетные файлы (bat, батники) Windows, ещё одна функция, которую можно и нужно использовать – изменение записей реестра при помощи cmd языка.
Использование батников для редактирования реестра иногда может быть выгоднее и удобнее, нежели работа со стандартными для этих целей reg-файлами.
- батники шире используются в администрировании;
- батники имеют режим тихого запуска (без всплывающих окон);
- батники можно запускать с повышенными правами, то есть от имени Администратора;
- с помощью бат-файлов возможна работа с реестром сетевых машин.
Именно для таких частных случаев будет полезно знать, как написать батник для редактирования системного реестра Windows.
Добавление ключей в реестр через reg-файл
Пример выше изменяет параметры существующих ключей. Но бывают ситуации, когда нам нужно добавить ключ, которого нет в реестре на данный момент. Напомним, что в статье о реестре Windows, упомянутой в начале данной записи, мы выделяли один момент:
В первую очередь отметим, что некоторые ключи имеют дефолтные значения. Это значит, что даже если конкретный ключ отсутствует в своей ветке, система будет вести себя, будто ему присвоен параметр по умолчанию.
Например, код reg-файла, позволяющего отключить автоматическую перезагрузку компьютера в случае появления синего экрана BSOD, будет выглядеть следующим образом:
Windows Registry Editor Version 5.00 ;Отключить автоматическую перезагрузку в случае BSOD [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl] "AutoReboot"=dword:00000000
где dword: – это тип данных добавляемого ключа реестра.
Готовый файл, отключающий перезагрузку Windows при падении системы в BSOD, можно скачать здесь: bsod_reboot_off
Изменение нескольких веток реестра в одном reg-файле
Если же нам необходимо изменить одним файлом ключи, расположенные в различных кустах реестра Windows, то совсем не обязательно на каждую ветку создавать отдельный файл. Для этого нам достаточно после описания параметров первой ветки добавить настройку следующей ветки с новой строки.
Для примера, приведём код, позволяющий отключить автозапуск со съёмных носителей и подключаемых устройств:
Windows Registry Editor Version 5.00 ;Отключить автозапуск носителей и устройств Windows для всех пользователей [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer] "NoDriveTypeAutoRun"=dword:000000ff [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdrom] "AutoRun"=dword:00000000 ;Отключить автозапуск носителей и устройств Windows для текущего пользователя [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer] "NoDriveTypeAutoRun"=dword:000000ff [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers] "DisableAutoplay"=dword:00000001
Записи настроек текущего пользователя здесь добавлены для верности, при необходимости можно вставить в создаваемый reg-файл только нужные строки.
Готовый reg-файл для отключения автозапуска со съёмных носителей можно скачать отсюда: autorun_off
Бонус. Восстановление ассоциаций ярлыков и файлов
После вирусной атаки на компьютер иногда случается так, что при попытке запуска определённого типа файлов стартует не предназначенная для этого программа.
Если с нарушением ассоциаций медиафайлов и документов легко справиться при помощи контекстного меню Открыть с помощью, то исправление нарушения запуска ярлыков и программ требует вмешательства в настройки системы.
Однако, испорченные ассоциации файлов легко исправить при помощи подходящих reg-файлов, восстанавливающих настройки Windows к исходным значениям. Ниже вы можете скачать нужный вам файл реанимации реестра.
Восстановление ассоциаций exe-файлов (исполнительных файлов, программ): exe-associations-fix
Восстановление ассоциаций lnk-файлов (ярлыков): lnk-associations-fix
Восстановление ассоциаций всех файлов (включая lnk и exe): all-associations-fix
Сегодня мы поговорили о том, что редактировать реестр Windows можно не только вручную, но и посредством reg-файлов. Добавление, редактирование, копирование и удаление данных реестра возможно и с помощью bat-файлов, о синтаксисе которых мы говорили в теме Пакетные файлы (bat, батники) Windows, но этот вопрос выходит за рамки обсуждения данной статьи и рассмотрен отдельно в публикации Редактирование реестра Windows из командной строки, bat-файлы
Содержание статьи
Ручное изменение ключей реестра приемлемо в том случае, когда вам необходимо разово произвести ту или иную настройку. Но если нам нужно повторять одну настройку с определённой периодичностью или задать нужные параметры на нескольких компьютерах, то возникает необходимость в упрощении процесса правки данной базы настроек системы.
Будьте аккуратны при вмешательстве в реестр, так как необдуманные действия и некорректные правки в этой части ОС могут повлечь за собой сбои в работе программного обеспечения и крах системы. Перед внесением любых изменений в системный реестр Windows сайт mirAdmin настоятельно рекомендует вам делать резервную копию изменяемых данных
Для автоматизации процесса редактирования реестра служат специальные файлы со своим синтаксисом и расширением *.reg. В вышеупомянутой записи о знакомстве с реестром Windows мы уже сталкивались с подобными файлами при создании резервной копии веток реестра и восстановлении их из бэкапа. Но такие рег-файлы можно писать и самому, если придерживаться определённых правил.
Изменение параметров реестра компьютера в сети
Выше мы рассмотрели достаточно широкие возможности батников в работе с реестром операционной системы. Последний момент, который отметим в контексте данной темы – это редактирование реестра компьютеров в локальной сети.
Для использования в работе с компьютерами в сети доступны все вышеперечисленные команды, единственное ограничение – операции из командной строки над реестром удалённых машин возможно производить только в разделах HKEY_ LOCAL_MACHINE (HKLM), и HKEY_USERS (HKU)
Ну и главное: чтобы работать с реестром компьютера в сети, необходимо в применяемой команде перед разделом указать имя удалённой машины, начинающееся с двойного обратного слеша.
При этом, в командах, обрабатывающих сразу несколько разделов (например, копирование из одного раздела в другой, сравнение веток), одна из веток может располагаться на локальном компьютере, а другая на компьютере в сети.
То есть, для копирования ветки с удалённой машины на наш компьютер необходимо выполнить следующую команду:
reg copy \\FRIEND\HKLM\Software\Games\Football\User HKLM\Software\Games\Football\User /s
Указанная команда скопирует содержимое раздела User с компьютера FRIEND в локальной сети в реестр машины, с которой выполняется команда.
На этом заключительную статью описания общих принципов работы с реестром компьютера и с bat-файлами можно считать завершённой.
Безошибочных вам команд и корректных ключей реестра.
Синтаксис reg-файлов
Для примера мы поменяем клавиши смены языка ввода с Alt + Shift на Ctrl + Shift.
На интересует ветка реестра
HKEY_CURRENT_USER\Keyboard Layout\Toggle
И ключи Hotkey, Language Hotkey и Layout Hotkey, которые имеют значения по умолчанию 1, 1 и 2, соответственно.
Для изменения сочетания клавиш нам нужно будет присвоить им новые значения “Hotkey“=”2“, “Language Hotkey“=”2“, “Layout Hotkey“=”3“
Итак, для создания reg-файла открываем текстовый редактор, например, Блокнот Windows. Вставляем в окно редактора следующий код:
Windows Registry Editor Version 5.00 ;Переключение языка по левым Ctrl + Shift [HKEY_CURRENT_USER\Keyboard Layout\Toggle] "Hotkey"="2" "Language Hotkey"="2" "Layout Hotkey"="3"
Windows Registry Editor Version 5.00 – это строка приветствия системы, позволяющая Windows определить, какого типа файл был запущен. Обязательна в начале всех reg-файлов, прописывается один раз.
;Переключение языка по левым Ctrl + Shift – строка комментария. Любая строка файла изменения реестра, начинающаяся точкой с запятой, не будет исполняться системой, служит для пояснительных записей. Комментарии прописываются сколько угодно раз.
[HKEY_CURRENT_USER\Keyboard Layout\Toggle] – куст реестра, в котором будут производиться изменения. О множественных записях подробно отметим чуть ниже.
“Hotkey”=”2”, “Language Hotkey”=”2”, “Layout Hotkey”=”3” – ключи реестра, расположенные в обрабатываемой ветке, и задаваемые им параметры. Каждый ключ с новой строки.
После этого жмём в меню текстового редактора на кнопку Файл, выбираем пункт Сохранить как, в строке Тип файла выбираем Все файлы, а в строке Имя файла задаём название, в конце которого ставим точку и дописываем расширение .reg.
Готовые файлы реестра для настройки сочетания клавиш смены языка можно скачать ниже:
Смена языка по Alt + Shift: language_alt_shift
Смена языка по Ctrl + Shift: language_ctrl_shift