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

Работа с реестром возможна не только через утилиту 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"

Примечание

Лучше вводить путь в кавычках.

Будет выведен примерно такой результат:

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. Теперь импортируем ее обратно.

Примечание

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

Для импорта используется команда 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 <имя_раздела> <имя_файла>

Примечание

В данному разделе перечислены основные команды утилиты REG для получения более подробной информации обратитесь к ресурсам, перечисленным в разделе Дополнительные ссылки