На нашем ресурсе уже есть публикация, описывающая основной способ работы с системным реестром 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\ Для этого нужно выполнить команду:
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 load, reg unload, reg save, reg restore - команды, позволяющие бэкапить и восстанавливать нужные ветки системного реестра Windows при помощи файлов *.hiv.
Изменение параметров реестра компьютера в сети
Выше мы рассмотрели достаточно широкие возможности батников в работе с реестром операционной системы. Последний момент, который отметим в контексте данной темы - это редактирование реестра компьютеров в локальной сети.
Для использования в работе с компьютерами в сети доступны все вышеперечисленные команды, единственное ограничение - операции из командной строки над реестром удалённых машин возможно производить только в разделах HKEY_ LOCAL_MACHINE (HKLM), и HKEY_USERS (HKU)
Ну и главное: чтобы работать с реестром компьютера в сети, необходимо в применяемой команде перед разделом указать имя удалённой машины, начинающееся с двойного обратного слеша.
При этом, в командах, обрабатывающих сразу несколько разделов (например, копирование из одного раздела в другой, сравнение веток), одна из веток может располагаться на локальном компьютере, а другая на компьютере в сети.
То есть, для копирования ветки с удалённой машины на наш компьютер необходимо выполнить следующую команду:
reg copy \\FRIEND\HKLM\Software\Games\Football\User HKLM\Software\Games\Football\User /s
Указанная команда скопирует содержимое раздела User с компьютера FRIEND в локальной сети в реестр машины, с которой выполняется команда.
На этом заключительную статью описания общих принципов работы с реестром компьютера и с bat-файлами можно считать завершённой.
Безошибочных вам команд и корректных ключей реестра.