- Как работать с реестром Windows из командной строки
- Выборка (query)
- Добавление (add)
- Удаление (delete)
- Редактирование
- Импорт
- Краткое описание всех операций
- Управление реестром с помощью командной строки
- REG QUERY
- REG ADD
- REG DELETE
- REG COPY
- REG SAVE
- REG RESTORE
- REG LOAD
- REG UNLOAD
- REG COMPARE
- REG EXPORT
- REG IMPORT
- REG.exe
- Backslash characters
- Activate
- Elevation
- Return codes (ERRORLEVEL)
Как работать с реестром Windows из командной строки
Что такое реестр Windows простыми словами.
Большинство команд лучше выполнять, запустив командную строку от имени администратора. Для этого найдите ее по ключу cmd — кликните по файлу правой кнопкой мыши — выберите Запустить от имени администратора. Или в Windows 10 правой кнопкой по Пуск — Командная строка (администратор).
Выборка (query)
reg query HKLM\Software\Microsoft
* в данном примере будет выведен на экран список веток, которые находятся в HKLM\Software\Microsoft
Если в пути встречается пробел, необходимо весь путь поместить в кавычки, например:
reg query «HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings»
Чтобы вывести все вложенные ветки, запускаем команду с параметром /s:
reg query «HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings» /s
Добавление (add)
reg add /v /t /d
Например, добавим настройки использования прокси-сервера для браузера Internet Explorer:
reg add «HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings» /v ProxyEnable /t REG_DWORD /d 1
reg add «HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings» /v ProxyServer /t REG_SZ /d «192.168.0.15:3128»
reg add «HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings» /v ProxyOverride /t REG_SZ /d » «
* где первая команда включает использование прокси-сервера; вторая прописывает использовать прокси с IP-адресом 192.168.0.15 и портом 3128; третья указывает не использовать прокси для локальных адресов.
Удаление (delete)
reg delete /v
Например, чтобы удалить одну из ранее созданной настройки, вводим следующую команду:
reg delete «HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings» /v ProxyEnable /f
Чтобы удалить всю ветку с ее параметрами и значениями, вводим такую команду:
reg delete «HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings» /va /f
Редактирование
Для редактирования значения нужно выполнить команду на добавление. Если ключ уже существует, команда заменить значение на новое:
reg add «HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings» /v ProxyEnable /t REG_DWORD /d 0 /f
* в данном примере будет изменено значение ключа ProxyEnable на 0 (или создан с таким значением); ключ f указывает на замену значения без вывода подтверждения.
Импорт
Во многих случаях проще выполнить импорт из файла, кликнув по нему дважды. Но, иногда необходимо выполнить импорт из командной строки:
reg import C:\Temp\import_proxy_settings.reg
* в данном примере мы импортировали настройки из файла import_proxy_settings.reg, который находится в каталоге C:\Temp\.
Краткое описание всех операций
В данной таблице приведены все возможные операции над коандой REG.
Операция | Описание |
---|---|
REG QUERY | Делает выборку ключей, параметров и значений |
REG ADD | Добавляет новую запись (параметр, ключ, значение) |
REG DELETE | Удаляет одну или несколько записей |
REG COPY | Копирует данные из одной ветки в другую |
REG SAVE | Сохраняет ветку со всеми параметрами и значениями в файл |
REG RESTORE | Восстанавливает ветку и данные из файла |
REG LOAD | Загружает данные в указанную ветку |
REG UNLOAD | Выгружает данные из указанной ветки |
REG COMPARE | Сравнивает две ветки |
REG EXPORT | Экспортирует все подразделы и параметры в файл .reg |
REG IMPORT | Импортирует все подразделы и параметры из файла .reg |
REG FLAGS | Показывает и устанавливает флаги для ветки |
Подробное описание всех ключей можно увидеть, введя команду reg /?
Например: reg add /?
Управление реестром с помощью командной строки
В общем виде синтаксис команды REG выглядит следующим образом:
REG [список параметров]
Всего существует одиннадцать процедур, которые способна выполнять директива REG: QUERY, ADD, DELETE, COPY, SAVE, LOAD, UNLOAD, RESTORE, COMPARE, EXPORT, IMPORT. Каждая из этих процедур имеет, как правило, собственный набор параметров. В настоящей главе мы подробно изучим каждую из них.
При вызове из командной строки директива REG пересылает в окружение операционной системы так называемый код возврата: сообщение об успешном или неуспешном выполнении операции. Если код возврата равен 0, это означает, что операция была выполнена успешно, если же она завершилась с ошибкой, код возврата будет равен 1. Более подробные сведения об использовании утилиты REG вы можете получить, набрав в командной строке директиву REG /?, чтобы получить информацию о какой-либо из перечисленных процедур, воспользуйтесь командой REG /?.
REG QUERY
Команда REG QUERY отправляет в системный реестр Windows запрос о содержимом ветвей, ключей, подразделов или параметров, и выводит на экран результат обработки этих запросов. В общем виде синтаксис данной команды записывается следующим образом:
REG QUERY [\Компьютер\]Путь [/v Параметр | /ve] [/s]
В составе директивы могут использоваться следующие параметры:
REG QUERY HKCC\Softvare\Microsoft\windows\CurrentVersion\Internet Settings /v ProxyEnable
Показывает имя и значение параметра ProxyEnable в разделе реестра HKCC\Softvare\Microsoft\windows\CurrentVersion\Internet Settings
REG QUERY HKLM\Software\Microsoft\Office /s
Показать список всех подразделов и содержащихся в них параметров для раздела реестра HKLM\Software\Microsoft\Office.
REG ADD
Данная команда добавляет в выбранный раздел реестра указанные пользователем параметры. Общий синтаксис этой директивы выглядит следующим образом:
REG ADD [\\ \] [/v | /ve] [/t ] [/s ] [/d ] [/f]
В составе директивы могут использоваться следующие параметры:
REG ADD \\NetComp\HKLM\Software\NewSubkey
Добавляет подраздел NewSubkey в раздел реестра HKLM\Software на удаленном компьютере NetComp.
REG ADD HKLM\Software\NewSubkey /v Value1 /t REG_SZ /d ac23456ffed
Добавляет в подраздел локального реестра HKLM\Software\NewSubkey параметр с именем Value1 типа REG_SZ, и присваивает ему значение ac23456ffed.
REG ADD HKLM\Software\NewSubkey /v Path /t REG_EXPAND_SZ /d %%systemroot%%\System32
Добавляет в подраздел локального реестра HKLM\Software\NewSubkey параметр с именем Path типа REG_EXPAND_SZ, и присваивает ему значение %systemroot%\System32
В случае записи в командной строке для директивы REG стандартных переменных окружения Windows, необходимо использовать для их выделения дополнительный символ «%» (%%переменная%%)
REG DELETE
С использованием данной команды выполняется удаление из реестра указанного ключа, подраздела или параметра. Общий синтаксис этой директивы выглядит следующим образом:
REG DELETE [\Компьютер\]Путь [/v Параметр | /ve | /va] [/f]
В составе директивы могут использоваться следующие параметры:
REG DELETE \HKLM\Software\NewSubkey
Удаляет подраздел NewSubkey вместе со всем его содержимым из раздела реестра HKLM\Software.
REG DELETE \HKLM\Software\Prog /v PARAM /f
Без предварительного подтверждения удаляет параметр PARAM из раздела реестра HKLM\Software\Prog.
REG COPY
С использованием команды REG COPY можно скопировать разделы, подразделы и параметры из одного раздела реестра в другой, как на локальном компьютере, так и по сети. Общий синтаксис этой директивы выглядит следующим образом:
В составе директивы могут использоваться следующие параметры:
REG COPY HKLM\Software\Program HKLM\Software\Restore /s
Скопировать все содержимое раздела реестра HKLM\Software\Program в раздел HKLM\Software\Restore.
REG COPY \\SERVER\HKLM\Software\Microsoft HKLM\Software\Server
Скопировать все параметры раздела реестра HKLM\Software\Microsoft с удаленного компьютера Server в раздел HKLM\Software\Server локального компьютера.
REG SAVE
Команда REG SAVE позволяет сохранить выбранный ключ или подраздел реестра вместе с хранящимися в нем параметрами на диск в файл с расширением .hiv, который впоследствии может быть импортирован в реестр. Стандартный формат записи этой команды выглядит следующим образом:
В составе директивы могут использоваться следующие параметры:
REG SAVE HKCC\System\CurrentControlSet ControlSet.hiv
Сохраняет подраздел реестра HKCC\System\CurrentControlSet вместе со всем его содержимым в файл ControlSet.hiv, создаваемый в текущей папке.
REG RESTORE
С использованием этой команды можно восстановить поврежденный ключ, раздел или подраздел реестра из файла .hiv, созданного ранее командой REG SAVE. В процессе восстановления все существующие в указанном разделе подразделы и параметры реестра перезаписываются. Стандартный формат данной команды таков:
В составе директивы могут использоваться следующие параметры:
REG RESTORE HKLM\Software\Microsoft MSBackup.hiv
Восстанавливает подраздел реестра HKLM\Software\Microsoft из ранее сохраненного на диске файла MSBackup.hiv, перезаписывая все содержимое указанного раздела.
REG LOAD
Действие команды REG LOAD в целом аналогично директиве REG RESTORE, с тем лишь исключением, что данная команда загружает ранее сохраненные в файле .hiv данные только в те ветви реестра, которые хранятся в оперативной памяти компьютера в ходе всего сеанса работы пользователя с операционной системой, то есть в дочерние разделы и подразделы ветвей HKLM и HKU. Для загрузки данных из файла в реестре обычно создается новый раздел с заданным пользователем именем. Синтаксис записи этой команды выглядит следующим образом:
В составе директивы могут использоваться следующие параметры:
REG LOAD HKLM\Software\NewKey MSBackup.hiv
Загружает данные из файла MSBackup.hiv в подраздел реестра HKLM\Software\NewKey.
REG UNLOAD
Директива REG UNLOAD выгружает из памяти локального компьютера хранящиеся там данные реестра, отображающиеся в иерархической структуре реестра в виде разделов и подразделов ветвей HKLM и HKU. Формат записи:
В составе директивы могут использоваться следующие параметры:
— описание локального раздела реестра, содержимое которого требуется выгрузить из памяти. Разрешается использовать только обозначение ветвей HKLM и HKU, а также их дочерних ключей и подразделов. Использование этой команды для удаленных компьютеров не допускается.
REG UNLOAD HKLM\Software
Выгружает из памяти компьютера содержимое ветви реестра HKLM\Software.
REG COMPARE
Эта команда позволяет выполнить операцию сравнения двух разделов реестра. Стандартный формат записи этой команды выглядит следующим образом:
REG COMPARE [/v | /ve] [ ] [/s]
В составе директивы могут использоваться следующие параметры:
В отличие от других процедур команды REG, директива REG COMPARE имеет не два, а три различных кода возврата: 0 — процедура выполнена успешно, сравниваемые данные идентичны; 1 — в процессе выполнения процедур произошла ошибка; 2 — процедура выполнена успешно, сравниваемые данные различаются.
REG COMPARE HKLM\Software\ProgApp HKLM\Software\Prog
Сравнивает содержимое подразделов реестра HKLM\Software\ProgApp и HKLM\Software\Prog.
REG COMPARE HKLM\Software\ProgApp HKLM\Software\Prog /v Value1
Сравнивает значение параметров с именем Value1, один из которых хранится в разделе HKLM\Software\ProgApp, а другой — в разделе HKLM\Software\Prog локального реестра.
REG COMPARE \\SERVER\HKLM\Software\Microsoft \\. /s
Сравнивает содержимое подраздела реестра HKLM\Software\Microsoft, хранящегося на удаленном компьютере SERVER, с аналогичным разделом реестра локального компьютера.
REG EXPORT
Команда REG EXPORT позволяет сохранить выбранный ключ или подраздел реестра вместе с хранящимися в нем параметрами на диск в файл с расширением .reg, который впоследствии может быть импортирован в реестр. Стандартный формат записи этой команды выглядит следующим образом:
В составе директивы могут использоваться следующие параметры:
REG EXPORT HKLM\Software\Adobe Adobe.reg
Экспортирует подраздел реестра HKLM\Software\Adobe вместе со всем его содержимым в файл Adobe.reg, создаваемый в текущей папке.
REG IMPORT
Директива REG IMPORT импортирует содержимое REG-файла в реестр Windows. Данный файл может храниться только на локальном компьютере. Формат записи:
Где — имя и путь к локальному REG-файлу на данном компьютере.
REG.exe
Read, Set or Delete registry keys and values, save and restore from a .REG file.
Any of the above commands can be run against a remote machine by adding \\MachineName to the command line, assuming the Remote Registry Service is running.
Registry paths which contain a space must be enclosed by quotation marks:
«HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList\»
It is easy to miss one space in a long path so it is a good habit to surround all registry paths with quotes.
Depending on the registry permissions, REG ADD may require running REG.exe from an elevated command prompt.
Registry data stored under HKCU will be visible and writable by the currently logged in user.
Registry data stored under HKLM will be visible to all users and writable only by administrators.
REG RESTORE has a tendency not to work, possibly due to firewall issues, EXPORT and IMPORT are much more reliable.
Backslash characters
The REG command will interpret \ as an escape for the character that immediately follows it.
To include a quote mark («) in the data, prefix it with the escape character e.g. Here is \ » a quote
This can cause problems with quoted directory paths because \» at the end of the line will be escaped.
To save a directory path with a trailing backslash ( \ ) requires adding a second backslash to ‘escape’ the escape
so for example instead of «C:\My Docs\» use «C:\My Docs\\»
Activate
To activate registry changes in HKEY_CURRENT_USER without logging off:
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True
n.b. this is an unsupported hack, with a good chance of failing in the future — details on oldnewthing
Elevation
Unlike REGEDIT, REG.exe does not always require elevation
When adding an item to HKCU, REG will be automatically manifested “asInvoker”, and will work without elevation,
when adding an item to HKLM then it does need to be run elevated.
Return codes (ERRORLEVEL)
0 = Success, the result is identical
1 = Failed
2 = Success, the result is different
Querying the console settings:
Add the registry key ‘Sample’ along with some data and then query to check that it worked:
REG ADD HKCU\Software\SS64 /v Sample /d «some test data»
REG QUERY HKCU\Software\SS64 /v Sample
Add the registry key to disable Fast User Switching on the current PC (requires elevation):
Add a REG_BINARY registry key to HKLM and overwrite if it already exists (requires elevation)
REG ADD HKLM\Software\DiLithium /v WarpSpeed /t REG_BINARY /d f1f2f3f4 /f
REG QUERY HKLM\Software\DiLithium /v WarpSpeed
Find the location of the Start Menu folder :
List IE Proxy overrides:
REG QUERY «HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings» /v ProxyOverride
Save a directory/registry path that ends with a backslash:
Save a REG_Expand_SZ value of %systemroot% , this variable will be expanded every time the registry value is read, rather than once whan the key is added:
REG ADD HKLM\Software\SS64 /v Path /t REG_EXPAND_SZ /d ^%systemroot^%
Copy Keys:
REG COPY HKCU\Software\SS64 HKCU\Software\SS64Copy
REG COPY \\Computer64\HKCU\Software\SS64 HKCU\Software\SS64
Export/Import/Save/Restore:
REG EXPORT HKCU\Software\SS64 C:\MyReg.REG
REG IMPORT C:\MyReg.REG
REG SAVE HKCU\Software\SS64 C:\MyRegHive.hiv
REG RESTORE \\Wks580\HKCU\Software\SS64 C:\MyRegHive.hiv
Run a script at first logon (Run Once) to do this we edit the Default User profile by temporarily loading it as TEMP :
To save a progress log as part of a RunOnce command you can include redirection to a log file as part of the command string, however to make this work the redirection characters and quotes must be escaped:
. «setup.cmd ^>^> \»C:\Temp\setup.log\»\»» /f
More examples are available via: REG QUERY /? REG ADD /? etc
«The way to a mans heart is through his stomach»