Добавить строку в реестр из bat файла. Reg Add или добавление новой записи в реестр Windows через bat-файл. Другие редакторы реестра

В этой статье излагаются базовые принципы работы с реестром Windows, знание которых пригодится вам в настройке операционной системы при помощи твиков реестра.

Терминология

Прежде чем перейти к делу, нужно определиться с терминологией. В статьях о твиках реестра, размещенных на сайте автоустановки, используется официальная терминология Microsoft, поэтому термины вполне соответствуют элементам редактора реестра.

Рисунок 1 - Редактор реестра

Как видите, здесь нет никаких "веток" и "ключей". Теперь к делу.

REG-файл

REG-файл - это текстовый файл с расширением REG, составленный в определенном формате.

Формат REG-файла

Ниже приводится пример REG-файла, отключающего меню недавних документов.

;Отключить меню недавних документов

"NoRecentDocsMenu"=hex:01,00,00,00

Создание REG-файла

Создать REG-файл очень просто. Скопируйте код в любой текстовый редактор (например, Блокнот). Нажмите CTRL+S и сохраните файл с любым именем и расширением.reg, заключая оба в кавычки.


Рисунок 2 - Создание REG-файла

Синтаксис REG-файла

  • Windows Registry Editor Version 5.00 - заголовок файла, являющийся его неотъемлемой частью. Также в качестве заголовка вы можете встретить REGEDIT4 - это формат Windows 98 / NT 4.0, который впрочем поймут и более новые операционные системы Windows. Подробнее о различиях в форматах можно прочитать на сайте JSO FAQ (на английском языке).
  • ;Отключить меню недавних документов - комментарий. Все строки, начинающиеся с ; (точка с запятой) представляют собой комментарии.
  • - это раздел реестра. Графически (в редакторе реестра) он представляет собой путь к параметру. В формате REG-файлов разделы всегда заключаются в квадратные скобки. В этом примере (под)раздел Explorer принадлежит разделу HKEY_CURRENT_USER.
  • "NoRecentDocsMenu"=hex:01,00,00,00 - параметр реестра и его значение. В зависимости от значения параметра, меняется поведение операционной системы или объекта. Многие параметры можно настроить в графическом интерфейсе операционной системы, но далеко не все. В таких случаях для изменения параметра используют редакторы реестра, твикеры или REG-файлы.

В REG-файле может содержаться несколько разделов и параметров реестра, но заголовок используется только в самом начале.

Windows Registry Editor Version 5.00

;Отключить перезагрузку в случае BSOD

"AutoReboot"=dword:00000000

;Отключить уведомление на экране приветствия о непрочитанных сообщениях

"MessageExpiryDays"=dword:00000000

Данный REG-файлом был получен путем экспорта из редактора реестра regedit.exe. При помощи REG-файлов можно вносить изменения в системный реестр - эта операция называется импортом параметров реестра.

Экспорт параметров реестра

Экспорт параметров реестра является несложной задачей. Как правило, параметры экспортируют перед внесением изменений в реестр (резервное копирование), либо для того чтобы создать REG-файл для последующего импорта в реестр другого компьютера или при автоматической установке системы.
Экспортировать параметры реестра можно различными способами.

Редактор реестра Windows (regedit.exe)

В состав ОС Windows входит программа для редактирования реестра - regedit.exe . Поскольку она располагается в системном каталоге, для ее запуска в командной строке не нужно указывать полный путь (например, достаточно будет такой последовательности: Пуск - Выполнить - regedit - OK ).

Для того чтобы экспортировать раздел реестра, достаточно щелкнуть по нему правой кнопкой мыши и выбрать из контекстного меню команду Экспортировать (в Windows 2000 эта команда расположена в меню Файл ).

Другие редакторы реестра

Существует великое множество программ для внесения изменений в системный реестр, которые также обладают возможностью экспорта параметров. Если Вы часто работаете с реестром, то Вам, наверняка, пригодится программа, обладающая адресной строкой. В адресную строку можно вставить скопированный (из статьи или из сообщения на форуме) раздел реестра и быстро перейти к нужному параметру. Примером такой программы может служить .

Командная строка

Из командной строки экспорт параметров реестра можно выполнить при помощи команды REG EXPORT , обладающей следующим синтаксисом.

REG EXPORT Полный путь к разделу реестра в виде: КОРЕНЬ\Подраздел (только для локального компьютера). Корневой раздел. Значения: [ HKLM | HKCU | HKCR | HKU | HKCC ]. Полный путь к разделу реестра в выбранном корневом разделе. Имя файла на диске для экспорта. Примеры: REG EXPORT HKLM\Software\MyCo\MyApp AppBkUp.reg Экспортирует все подразделы и значения параметров раздела MyApp в файл AppBkUp.reg

Импорт параметров реестра

Импорт параметров реестра можно осуществить несколькими способами.

Запуск REG-файла при помощи графического интерфейса

Это самый простой способ. Он заключается в запуске REG-файла, содержащего необходимые параметры, двойным щелчком мыши или из командной строки.

Двойной щелчок мыши

Как это ни тривиально звучит, но двойным щелчком мыши на REG-файле можно внести изменения в реестр. Правда, сначала система уточнит, действительно ли вы хотите это сделать. В случае положительного ответа изменения будут внесены.


Рисунок 3 - Система запрашивает подтверждение на внесение изменений.

Из-за этого запроса такой способ не подходит для импорта параметров в реестр во время автоматической установки системы. Но есть и другие способы.

Командная строка

Для импорта REG-файлов из командной строки существует команда REGEDIT . Набрав в командной строке

Вы получите точно такое же диалоговое окно, как при двойном щелчке мыши. Подавить появление диалогового окна можно запустив команду с параметром /S . Именно этот способ чаще всего применяется во время автоматической установки Windows .

Команда REG ADD

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

REG ADD [\\\] Имя удаленного компьютера, если оно опущено, то по умолчанию считается равным имени локального компьютера. На удаленных компьютерах доступны только разделы HKLM и HKU. Полный путь к разделу реестра в виде КОРЕНЬ\Подраздел. Корневой радел. Значения [ HKLM | HKCU | HKCR | HKU | HKCC ]. Полный путь к разделу реестра в выбранном корневом разделе. /v Имя добавляемого параметра в указанном разделе. /ve Добавить пустой параметр (По умолчанию) в указанный раздел. /t Типы данных. По умолчанию, считается равным REG_SZ. /s Определяет разделитель, который используется для разделения данных в многострочных параметрах типа REG_MULTI_SZ. По умолчанию, считается равным "\0". /d Значение, присеваемое добавляемому параметру реестра. /f Принудительно перезаписывать существующие записи реестра без предупреждения. Примеры: REG ADD \\ABC\HKLM\Software\MyCo Добавляет раздел HKLM\Software\MyCo на удаленный компьютер ABC REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead Добавляет параметр с именем: Data, типом: REG_BINARY, и значением: fe340ead REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail Добавляет параметр с именем: MRU, типом: REG_MUTLI_SZ, и значением: fax\0mail\0\0 REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d %%systemroot%% Добавляет параметр с именем: Path, типом: REG_EXPAND_SZ, и значением: %systemroot% Примечание: Используйте в строке двойные символы процента (%%)

INF-файл

Импортировать параметры в реестр можно и при помощи INF-файлов. Их общий синтаксис несколько сложнее, чем у REG-файлов, но непосредственно запись в реестр осуществляется достаточно просто. Ниже приводится пример из аддона Msgina

Signature="$Windows NT$" Msgina OptionDesc="Msgina" Tip="Библиотека GINA входа в систему" Modes=0,1,2,3 AddReg=Msgina.AddReg HKLM,"Software\Policies\Microsoft\Windows\System\Shutdown","ShowHibernateButton",0x10001,1 HKLM,"Software\Policies\Microsoft\Windows\System\Shutdown","HibernateAsButton",0x10001,1

Примечание . Дополнительную информацию об INF-файлах можно найти в .

Реестр операционной системы Windows отвечает за работоспособность всей системы, крах реестра – крах системы. Однако, значимое количество вирусов или же просто талантливых людей, различными способами стремятся вывести его (реестр) из строя или же просто, получить над ним полный контроль, или как вариант - разрушительное редактирование реестра через командную стоку.

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

В этой статье я решил привести пример «издевательства » над собственной системой. Вначале, стоит обратить свое внимание на то, пути к каким программам прописаны в автозагрузке. Через меню Пуск доступна папка автозагрузка, но это лишь вершина айсберга, есть более верный способ просмотреть что находится в автозагрузке, например, используя утилиту, входящую в состав Windows - msconfig (Пуск/выполнить/msconfig). Реестр командная строка. Однако, мир не столь уж прост, и порой стоит прибегнуть к более продвинутым средствам, например утилита autoruns.exe . С ее помощью можно увидеть намного больше, на вкладке everything сразу бросаются в глаза различные разделы, в которых и прописано много чего интересного. Если не вникать в подробности, то для простого примера стоит обратить внимание на нижестоящие разделы:

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce

Плюс, стоит бросить взгляд на раздел:

  • HKEY_CURRENT_USERS\Software\Microsoft\Windows\CurrentVersion\Run

Раздел HKLM охватывает всех пользователей, a HKCU - только текущего. Создадим нового пользователя с правами администратора:

Net user NewUser password /add - создаем пользователя NewUser и присваиваем ему пароль password

Net localgroup Администраторы NewUser /add - добавляем новоиспеченного пользователя в группу Администраторы.

Стоит напомнить, что сервер сценариев для работы с реестром предоставляет объект Wscript.Shell и его методы .

Теперь попробуем, произвести редактирование системного реестра из командной строки, чтобы изменить пароль пользователя NewUser используя ветку HKLM. Для этого стоит зайти в систему через свою учетную запись и создать батник следующего содержимого (текстовый файл с расширением.bat):

net user NewUser newpass

Следующая задача состоит в том, что бы пользователь NewUser его запустил, для этого прописываем в командной строке:

reg add HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce /v NewPass /t reg_sz /d c:\Master.bat /f

В данном случае мы добавили в подраздел RunOnce новый параметр под названием NewPass со строковым типом reg_sz и прописали путь к нашему батнику. Теперь при входе в систему будет происходит запуск сценариях Master.bat, который в свою очередь изменит данные учетной записи.

Конечно, это не более чем простенький пример. Проблема в том, что редактировать реестр через командную строку стоит осмысленно , иначе, ваши действия могут принести совсем не тот результат, что ожидалось. Взять для примера печальную запись “Редактирование реестра запрещено администратором системы ”, такую шалость производят, как правило, вирусы, если запрет был прописан в HKCU и вы являетесь администратором, то достаточно создать нового админ-пользователя, зайти через него в систему и открыв реестр, пробраться к нужному параметру:

HKEY_CURRENT_USERS\Software\Microsoft\Windows\CurrentVersion\Policies\System

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

REG DELETE HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegistryTools

Однако, подсунуть свинью можно и собственными силами. Есть такая утилита как regini , она позволяет назначать разрешения к тем или иным веткам реестра. Не знаю почему, но на Семерке по команде regini /? выводится полная справка, а вот в Windows XP SP3 - ничего. Так вот, синтаксис утилиты довольно прост:

regini.exe -m "компьютер" "путь к файлу сценария"

если утилита используется локально, то параметр -m «компьютер» не нужен. Всего есть 17 пунктов, и каждый определяет те или иные разрешения.

Прежде всего, надо создать текстовый файл, в котором будет прописана нужная ветка и права для нее. Например, если в файле прописать строчку Registry\Machine\Security , то администраторам и учетной записи локальной системы будут предоставлены права полного доступа к ветви реестра HKLM\SECURITY. Но, эта утилита имеет один изъян - она затирает предыдущие права. Если посмотреть на разрешения для ветки SECURITY, то мы увидим, что полный доступ имеет только локальная система (SYSTEM), именно поэтому, под администратором вы не сможете просмотреть содержимое этого раздела. Редактируя реестр через командную строку, с использованием утилиты regini я решил дать для ветки SECURITY полный доступ для администратора (хотя это можно сделать в самом редакторе реестра), в файле сценария я прописал следующую строчку Registry\Machine\Security . Реестр командная строка.

Утилиту запустил, путь к сценарию прописал. И о чудо, я имею доступ к этой ветке, ни о чем не подозревая, я перезагрузил систему. Увидев надпись при загрузке «отсутствуют права доступа к файлу» или что-то в этом роде, я понял НАДО БЫЛО И ЛОКАЛЬНОЙ СИСТЕМЕ ДАТЬ ДОСТУП! Благо, что на другом винте стояла тоже ХР, правда не SP3 a SP2, я банально заменил весь реестр и о чудо, система заработала!

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

Разделы и параметры реестра Windows

Реестр Windows хранит конфигурационную информацию операционной системы, приложений, пользователей и оборудования. Эти данные содержатся в разделах (keys) и параметрах (values) реестра, которые размещаются в определенном корневом разделе (root key), который контролирует, как и когда используются разделы и параметры. В корневых разделах вы найдете главные разделы (main keys), управляющие параметрами системы, пользователей, приложений и оборудования. Эти разделы организованы в древовидную структуру, где разделы представлены папками. Так, в разделе HKEY_LOCAL MACHINE\SYSTEM\CurrentControlSet\Services находятся папки для всех служб, установленных в системе. В этих папках содержатся разделы реестра, хранящие важную конфигурационную информацию, и их подразделы (subkeys). Нужные разделы реестра задаются через их пути к папкам.

Команда REG управления реестром из командной строки

REG поддерживает несколько подкоманд, и мы рассмотрим некоторые из них.

  • REG add - добавляет в реестр новый подраздел или элемент.
  • REG delete - удаляет из реестра подраздел или элемент.
  • REG query - выводит список элементов раздела и имена подразделов (если они есть).
  • REG compare - сравнивает подразделы или элементы реестра.
  • REG сору - копирует элемент реестра по указанному пути раздела на локальной или удаленной системе.
  • REG restore - записывает в реестр ранее сохраненные подразделы, элементы и параметры.
  • REG save - сохраняет копию указанных подразделов, элементов и параметров реестра в файл.

Бывает так, что Вам нужно изменить некий параметр в реестре на компьютерах в сети. Естественно, чем больше у Вас компьютеров, тем утомительнее это делать вручную. В данном случае процесс можно автоматизировать созданием bat-файла, который и внесет все необходимые изменения на компьютеры сети. Далее этот файл можно распространить посредством групповых политик, специального ПО вроде Kaspersky Security Center или просто прописать в самом файле имена компьютеров и запустить со своей машины.

В общем виде команда reg add выглядит следующим образом:

reg add имя_раздела

Разберем её синтаксис подробнее. Для лучшего понимания взглянем на пример записи в реестре:

Данная запись лежит в реестре по адресу HKEY_CURRENT_USER\Software\Avast Software\Avast Browser Cleanup. Это и есть имя раздела . Данную запись мы возьмем просто как пример. Если Вы собрались редактировать реестр через bat-файл, то Вы уж точно знаете, куда добавлять необходимую Вам запись. 🙂

Если запись будет добавляться в реестр другого компьютера, то перед именем раздела необходимо прописать имя компьютера , вот так: \\имя_компьютера\имя_раздела. Таким образом, Вы сразу можете прописать в bat-файле имена компьютеров и запустить его один раз у себя. Естественно, у Вас должны быть соответствующие права в домене.

/v имя записи. На скриншоте таких записей несколько. Например, PluginsCleaned .

/ve задаёт нулевое значение для записи, добавляемой в реестр. Не обязательно.

/t тип данных — записи реестра могут принимать один из следующих типов данных:

REG_SZ
REG_MULTI_SZ
REG_DWORD_BIG_ENDIAN
REG_DWORD
REG_BINARY
REG_DWORD_LITTLE_ENDIAN
REG_LINK
REG_FULL_RESOURCE_DESCRIPTOR
REG_EXPAND_SZ

/s разделитель — задает символы для разделения копий данных. Используется при типе данных REG_MULTI_SZ в случае размещения более одной записи в списке. Если разделитель не задан, то используется разделитель \0, заданный по умолчанию.

/d значение — значение добавляемой записи реестра.

/f — добавляет раздел или запись без запроса подтверждения. Не обязательно.

Получить подробную справку в командной строке можно, введя

reg add /?

Возвращаясь к нашему примеру. Я ввел в командную строку:

reg add "HKEY_CURRENT_USER\Software\Avast Software\Avast Browser Cleanup" /v Primer /t REG_DWORD /d 0

В данном случае кавычки нужны, чтобы командная строка нормально восприняла пробелы в имени раздела. Как видите, я создал параметр Primer с типом REG_DWORD и значением 0 .



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: