- Редактирование реестра Windows из командной строки, bat-файлы
- Содержание статьи:
- Использование bat-файлов для редактирования реестра
- Работа с реестром из командной строки
- Изменение параметров реестра компьютера в сети
- How to edit the registry from the command line
- Microsoft Windows XP, Vista, 7, 8, and 10 users
- Microsoft Windows 95, 98, ME, and 2000 users
- Редактирование реестра Windows из командной строки
Редактирование реестра Windows из командной строки, bat-файлы
На нашем ресурсе уже есть публикация, описывающая основной способ работы с системным реестром Windows : Изменение параметров cистемного реестра Windows. Также мы рассматривали способ автоматизации процесса при помощи специальных файлов: Создание reg-файлов. Синтаксис редактирования записей реестра — позволяющий значительно упростить монотонную работу и воспроизведение часто используемых настроек. В рамках данной статьи мы затронем логическое продолжение темы, а именно, поговорим о том, как редактировать реестр из командной строки.
Содержание статьи:
Использование bat-файлов для редактирования реестра
Точнее сказать, мы, разумеется, не будем раз за разом вручную прописывать нужные параметры в окне консоли, не для этого данный способ нужен, мы рассмотрим вариант внесения изменений в системный реестр Windows при помощи bat-файлов.
Достаточно подробно о создании и использовании батников речь шла в записи Пакетные файлы (bat, батники) Windows, ещё одна функция, которую можно и нужно использовать — изменение записей реестра при помощи cmd языка .
Использование батников для редактирования реестра иногда может быть выгоднее и удобнее, нежели работа со стандартными для этих целей reg-файлами.
- батники шире используются в администрировании;
- батники имеют режим тихого запуска (без всплывающих окон);
- батники можно запускать с повышенными правами, то есть от имени Администратора;
- с помощью бат-файлов возможна работа с реестром сетевых машин.
Именно для таких частных случаев будет полезно знать, как написать батник для редактирования системного реестра Windows.
Работа с реестром из командной строки
Синтаксис бат-файлов и процесс их создания описан в статье, приведённой выше, в данной же публикации затронем исключительно тему, касающуюся выполнения функции изменения реестра из командной строки.
Сразу отметим, что в 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\ Для этого нужно выполнить команду:
Если немного применить фантазию и оформить батник, то код будет выглядеть примерно следующим образом:
Вот такой файл, как в архиве, у нас получится: drivers_etc
Остальные примеры в данной статье будем приводить вымышленные, дабы при их тестировании не вносить нежелательных изменений в реестр
reg delete — команда для удаления указанной информации из реестра компьютера.
Чтобы удалить определённый параметр, нам достаточно указать его полный путь после команды удаления. Пример:
Данная команда удалит параметр Save из указанной ветки.
reg copy — команда для копирования параметров и ключей из одной ветки реестра в другую.
Для копирования параметров достаточно после команды последовательно прописать сначала исходную ветку, а потом изменяемую. Например:
Данная команда скопирует всю информацию из ветки User1 в ветку User2.
reg export — команда для экспорта указанных веток реестра в виде *.reg файла на жёсткий диск.
Пример использования:
В результате выполнения данной команды будет создан рег-файл с бэкапом раздела Football.
reg import — команда, позволяющая импортировать данные из reg-файла в реестр системы.
Пример использования:
В результате выполнения данной команды записи из рег-файла будут импортированы в реестр.
reg query — данная команда возвращает значение запрашиваемых параметров и кустов реестра.
Пример использования:
В ответ будет возвращено значение параметра Run в реестре.
reg compare — команда позволяет сравнить две указанные последовательно ветки реестра.
Пример использования:
В ответ команда возвращает одно из значений: 0 — данные веток идентичны; 1 — при выполнении операции произошла ошибка; 2 — данные веток отличаются.
reg load , reg unload , reg save , reg restore — команды, позволяющие бэкапить и восстанавливать нужные ветки системного реестра Windows при помощи файлов *.hiv.
Изменение параметров реестра компьютера в сети
Выше мы рассмотрели достаточно широкие возможности батников в работе с реестром операционной системы. Последний момент, который отметим в контексте данной темы — это редактирование реестра компьютеров в локальной сети.
Для использования в работе с компьютерами в сети доступны все вышеперечисленные команды, единственное ограничение — операции из командной строки над реестром удалённых машин возможно производить только в разделах HKEY_ LOCAL_MACHINE (HKLM), и HKEY_USERS (HKU)
Ну и главное: чтобы работать с реестром компьютера в сети, необходимо в применяемой команде перед разделом указать имя удалённой машины, начинающееся с двойного обратного слеша.
При этом, в командах, обрабатывающих сразу несколько разделов (например, копирование из одного раздела в другой, сравнение веток), одна из веток может располагаться на локальном компьютере, а другая на компьютере в сети.
То есть, для копирования ветки с удалённой машины на наш компьютер необходимо выполнить следующую команду:
Указанная команда скопирует содержимое раздела User с компьютера FRIEND в локальной сети в реестр машины, с которой выполняется команда.
На этом заключительную статью описания общих принципов работы с реестром компьютера и с bat-файлами можно считать завершённой.
Безошибочных вам команд и корректных ключей реестра.
How to edit the registry from the command line
If you’re attempting to edit the registry from the command line because you’re unable to get into normal Windows, try first booting into Windows Safe Mode and run Regedit from Safe Mode.
To open Windows registry in the command prompt, press Windows key + R , then press Enter . In the Command Prompt, type regedit, then press Enter .
Microsoft Windows XP, Vista, 7, 8, and 10 users
Microsoft Windows XP users can view, edit, and modify their registry from the MS-DOS command (CMD) prompt using the reg command. See the reg command page for additional information and examples.
Windows XP users can also use the following solution to edit and modify their registry from the command prompt.
Microsoft Windows 95, 98, ME, and 2000 users
By default, Microsoft Windows 95, 98, ME, and 2000 users can import registry files from the command prompt using the Regedit command. Using this command and a registry file containing the proper commands, a user can add, remove, and otherwise edit the registry from the command line.
If you want to import a registry file from the command line, you can use the Regedit command and the name of the file you want to import. For example, if the name of the file was hope.reg, you’d type the following command.
The file hope.reg could contain the commands necessary to add and remove registry values. Below are examples of registry files to create entries, delete single entries and a complete folder. To create these files yourself, copy the following examples into an empty .reg file or use notepad or the edit command to create a file using the following commands.
Users running earlier versions of Windows may want to substitute Windows Registry Editor Version 5.00 with REGEDIT4.
The following example adds a ComputerHope folder into the HKEY_LOCAL_MACHINE\Software directory with a string example and data value of data here.
To delete a single entry in the registry, add a hyphen (minus) key after the equal sign. For example, if we wanted to delete our string value «example» we created with the above example, we would create the following .reg file.
Finally, to delete the folder and all its continents, create a .reg file similar to the following example.
Редактирование реестра Windows из командной строки
Утилита командной строки REG.EXE присутствует во всех версиях операционных систем семейства Windows и используется для добавления, изменения, удаления и просмотра параметров и ключей реестра.
Формат командной строки:
Операции:
QUERY — поиск и отображение содержимого реестра.
ADD — добавление новых разделов и записей в реестр.
DELETE — удаление разделов и записей из реестра.
EXPORT — экспорт данных реестра в .reg-файл.
IMPORT — импорт данных реестра из .reg-файла.
SAVE — сохранение данных реестра в файл.
RESTORE — восстановление данных реестра из файла.
LOAD — загрузка куста реестра
UNLOAD — выгрузка куста реестра в файл, ранее загруженный операцией LOAD.
COMPARE — сравнение разделов и параметров реестра.
FLAGS — отображение или изменение флагов разделов реестра.
COPY — копирование разделов и записей из реестра.
Код возврата: (за исключением REG COMPARE):
0 – Успешно
1 — С ошибкой
Для каждой операции, задаваемой в командной строке REG, используются свои параметры. Для получения справки по определенной операции введите:
Результат выполнения операции зависит от прав пользователя по отношению к данным реестра. Редактирование реестра является потенциально опасной операцией и при необдуманных или ошибочных действиях может привести к неработоспособности системы. Прежде, чем вносить какие-либо изменения в реестр, нужно сделать его резервную копию и освоить процедуру восстановления системы в случае ее краха по причине неверного содержимого реестра, в том числе, и для случаев, когда загрузку Windows выполнить невозможно.
1. REG QUERY – отобразить содержимое реестра.
Параметры командной строки:
имяраздела — может включать имя удаленного компьютера в формате \компьютер\полноеимяраздела . Если имя компьютера не задано, то по умолчанию используется текущий компьютер. На удаленных компьютерах доступны только разделы HKLM и HKU.полноеимяраздела — путь в форме корневойраздел\подраздел. Корневой раздел — [ HKLM | HKCU | HKCR | HKU | HKCC ]. Подраздел — полное имя раздела реестра в указанном корневом_разделе.
/v — Запросы требуемых параметров в указанном разделе реестра. Если не указано, запрашиваются все параметры раздела. Аргумент этого параметра может быть необязательным, только если задан параметр /f. Это указывает на поиск только в именах параметров реестра.
/ve — Запросы параметра по умолчанию или с пустым именем (по умолчанию).
/s — Запрос всех вложенных подразделов и их параметров (аналогично команде dir /s).
/se — Указание разделителя (длиной в 1 знак) в строке данных для REG_MULTI_SZ. По умолчанию в качестве разделителя используется «\0».
/f — Данные или шаблон для поиска. Если строка содержит пробелы, заключайте ее в кавычки. Значение по умолчанию: «*».
/k — Указывает на поиск только в именах разделов.
/d — Указывает на поиск только в данных.
/c — Указывает на учет регистра знаков при поиске. По умолчанию при поиске регистр знаков не учитывается.
/e — Указывает на возврат только точных совпадений. По умолчанию возвращаются все совпадения.
/t — Указывает тип данных параметра реестра. Допустимые типы: REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ, REG_DWORD, REG_QWORD, REG_BINARY, REG_NONE. По умолчанию будут использоваться все типы.
/z — Подробности: отображение числового кода типа имени значения.
Пример:
REG QUERY HKLM\Software\Microsoft\ResKit /v Version — отобразить значение параметра реестра Version
2. REG ADD — добавить или заменить существующий параметр реестра.
Параметры командной строки:
имя_раздела — [\ ] . Компьютер — имя удаленного компьютера. Если оно опущено, то по умолчанию используется локальный компьютер. На удаленном компьютере доступны только корневые разделы HKLM и HKU.
Раздел — КОРЕНЬ\ . КОРЕНЬ — [ HKLM | HKCU | HKCR | HKU | HKCC ]. Подраздел — полное имя подраздела реестра в указанном корневом разделе.
/v — Имя параметра, добавляемого в выбранный раздел.
/ve — Добавление параметра с пустым именем (по умолчанию) в этот раздел.
/t — Тип данных: [ REG_SZ | REG_MULTI_SZ | REG_EXPAND_SZ | REG_DWORD | REG_QWORD|REG_BINARY | REG_NONE ]. Если не указывается, то по умолчанию используется REG_SZ.
/s — Символ, используемый в качестве разделителя данных для параметров типа REG_MULTI_SZ. Если не указан, то в качестве разделителя используется «\0».
/d — Значение, присваиваемое добавляемому параметру реестра.
/f — Принудительно перезаписывает существующую запись реестра без запроса подтверждения.
/reg:32 — Указывает, что к разделу реестра следует обращаться с помощью представления для 32-разрядных приложений.
/reg:64 — Указывает, что к разделу реестра следует обращаться с помощью представления для 64-разрядных приложений.
REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead — Добавляет параметр (имя: Data, тип: REG_BINARY, данные: fe340ead)
3. REG DELETE — удалить существующий параметр реестра.
Параметры командной строки:
имя_раздела — [\ ] . Компьютер — имя удаленного компьютера. Если оно опущено, то по умолчанию используется локальный компьютер. На удаленном компьютере доступны только корневые разделы HKLM и HKU.
Раздел — КОРЕНЬ\ . КОРЕНЬ — [ HKLM | HKCU | HKCR | HKU | HKCC ]. Подраздел — полное имя подраздела реестра в указанном корневом разделе.
имя_параметра — Имя параметра, удаляемого из выбранного раздела. Если оно опущено, удаляются все подразделы и значения указанного раздела.
/ve — Удаляет пустое имя параметра (по умолчанию).
/va — Удаляет все параметры в указанном разделе.
/f — Выполняет принудительное удаление без запроса подтверждения.
/reg:32 — Указывает, что к разделу реестра следует обращаться с помощью представления для 32-разрядных приложений.
/reg:64 — Указывает, что к разделу реестра следует обращаться с помощью представления для 64-разрядных приложений.
REG DELETE HKLM\Software\MyCo\MyApp\Timeout — Удаляет раздел реестра Timeout и все его подразделы и параметры.
4. REG EXPORT — экспорт данных реестра в файл.
Параметры командной строки:
имя_раздела — в виде КОРЕНЬ\ (только локальный компьютер). КОРЕНЬ может быть [ HKLM | HKCU | HKCR | HKU | HKCC ]. Подраздел — полное имя подраздела реестра в одном из выбранных корневых разделов.
имя_файла — путь и имя файла в который экспортируются данные реестра.
/y — Выполнение замены существующего файла без запроса подтверждения.
/reg:32 — Указывает, что к разделу реестра следует обращаться с помощью представления для 32-разрядных приложений.
/reg:64 — Указывает, что к разделу реестра следует обращаться с помощью представления для 64-разрядных приложений.