Редактирование реестра в командной строке

registry-file реестраРедактирование системного реестра 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_ROOTHKCR
HKEY_CURRENT_USERHKCU
HKEY_LOCAL_MACHINEHKLM
HKEY_USERSHKU
HKEY_CURRENT_CONFIGHKCC

Вывод содержимого ветвей (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

Команда доступна только для выполнения на локальном компьютере.

:/>  NET – управление сетевой конфигурацией Windows.

Для импорта используется команда 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-файлов для добавления и изменения параметров. Но как писать файл, если нам надо удалить хвосты в реестре, допустим, после деинсталляции программы.

Пример конкретных программ рассматривать не будем, а решим задачу по удалению из окна Проводника на вкладке Мой компьютер лишних папок: Видео, Документы, Загрузки, Изображения, Музыка, Рабочий стол

Удаление папок из меню Этот компьютер Проводника Windows

Пишем 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 loadreg unload, reg savereg restore – команды, позволяющие бэкапить и восстанавливать нужные ветки системного реестра Windows при помощи файлов *.hiv.

Содержание статьи

Точнее сказать, мы, разумеется, не будем раз за разом вручную прописывать нужные параметры в окне консоли, не для этого данный способ нужен, мы рассмотрим вариант внесения изменений в системный реестр Windows при помощи bat-файлов.

Достаточно подробно о создании и использовании батников речь шла в записи Пакетные файлы (bat, батники) Windows, ещё одна функция, которую можно и нужно использовать – изменение записей реестра при помощи cmd языка.
Использование батников для редактирования реестра иногда может быть выгоднее и удобнее, нежели работа со стандартными для этих целей reg-файлами.

  1. батники шире используются в администрировании;
  2. батники имеют режим тихого запуска (без всплывающих окон);
  3. батники можно запускать с повышенными правами, то есть от имени Администратора;
  4. с помощью бат-файлов возможна работа с реестром сетевых машин.

Именно для таких частных случаев будет полезно знать, как написать батник для редактирования системного реестра 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 10 как исправить

Содержание статьи

Ручное изменение ключей реестра приемлемо в том случае, когда вам необходимо разово произвести ту или иную настройку. Но если нам нужно повторять одну настройку с определённой периодичностью или задать нужные параметры на нескольких компьютерах, то возникает необходимость в упрощении процесса правки данной базы настроек системы.

Будьте аккуратны при вмешательстве в реестр, так как необдуманные действия и некорректные правки в этой части ОС могут повлечь за собой сбои в работе программного обеспечения и крах системы. Перед внесением любых изменений в системный реестр Windows сайт mirAdmin настоятельно рекомендует вам делать резервную копию изменяемых данных

Для автоматизации процесса редактирования реестра служат специальные файлы со своим синтаксисом и расширением *.reg. В вышеупомянутой записи о знакомстве с реестром Windows мы уже сталкивались с подобными файлами при создании резервной копии веток реестра и восстановлении их из бэкапа. Но такие рег-файлы можно писать и самому, если придерживаться определённых правил.

Изменение параметров реестра компьютера в сети

Выше мы рассмотрели достаточно широкие возможности батников в работе с реестром операционной системы. Последний момент, который отметим в контексте данной темы – это редактирование реестра компьютеров в локальной сети.

Для использования в работе с компьютерами в сети доступны все вышеперечисленные команды, единственное ограничение – операции из командной строки над реестром удалённых машин возможно производить только в разделах HKEY_ LOCAL_MACHINE (HKLM), и HKEY_USERS (HKU)

bat-файлНу и главное: чтобы работать с реестром компьютера в сети, необходимо в применяемой команде перед разделом указать имя удалённой машины, начинающееся с двойного обратного слеша.
При этом, в командах, обрабатывающих сразу несколько разделов (например, копирование из одного раздела в другой, сравнение веток), одна из веток может располагаться на локальном компьютере, а другая на компьютере в сети.

То есть, для копирования ветки с удалённой машины на наш компьютер необходимо выполнить следующую команду:

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.

Создание reg-файла в Блокноте Windows

Готовые файлы реестра для настройки сочетания клавиш смены языка можно скачать ниже:

Смена языка по Alt + Shift: language_alt_shift
Смена языка по Ctrl + Shift: language_ctrl_shift

Оставьте комментарий