Редактирование системного реестра Windows – полезное умение в руках каждого пользователя. В статье Изменение параметров cистемного реестра Windows мы познакомились с самим реестром, его структурой и рассмотрели примеры с изменениями параметров его ключей. Сегодня мы поговорим о том, как автоматизировать процесс правки реестра и сделать его удобнее и быстрее.
На нашем ресурсе уже есть публикация, описывающая основной способ работы с системным реестром Windows: Изменение параметров cистемного реестра Windows. Также мы рассматривали способ автоматизации процесса при помощи специальных файлов: Создание reg-файлов. Синтаксис редактирования записей реестра – позволяющий значительно упростить монотонную работу и воспроизведение часто используемых настроек. В рамках данной статьи мы затронем логическое продолжение темы, а именно, поговорим о том, как редактировать реестр из командной строки.
Основной синтаксис¶
В общем виде синтаксис команды выглядит следующим образом:
Всего существует одиннадцать процедур, которые способна выполнять директива : , , , , , , , , , , . Каждая из этих процедур имеет, как правило, собственный набор параметров.
При вызове из командной строки директива пересылает в окружение операционной системы так называемый код возврата: сообщение об успешном или неуспешном выполнении операции. Если код возврата равен , это означает, что операция была выполнена успешно, если же она завершилась с ошибкой, код возврата будет равен .
Более подробные сведения об использовании утилиты вы можете получить, набрав в командной строке директиву , чтобы получить информацию о какой-либо из перечисленных процедур, воспользуйтесь командой .
Для примера мы поменяем клавиши смены языка ввода с Alt + Shift на Ctrl + Shift.
На интересует ветка реестра
И ключи , и , которые имеют значения по умолчанию , и , соответственно.
Для изменения сочетания клавиш нам нужно будет присвоить им новые значения “”=””, “”=””, “”=””
Итак, для создания открываем текстовый редактор, например, Блокнот Windows. Вставляем в окно редактора следующий код:
После этого жмём в меню текстового редактора на кнопку , выбираем пункт , в строке выбираем , а в строке задаём название, в конце которого ставим точку и дописываем расширение .reg.
Смена языка по Alt + Shift: language_alt_shift
Смена языка по Ctrl + Shift: language_ctrl_shift
Бывает так, что Вам нужно изменить некий параметр в реестре на компьютерах в сети. Естественно, чем больше у Вас компьютеров, тем утомительнее это делать вручную. В данном случае процесс можно автоматизировать созданием bat-файла, который и внесет все необходимые изменения на компьютеры сети. Далее этот файл можно распространить посредством групповых политик, специального ПО вроде Kaspersky Security Center или просто прописать в самом файле имена компьютеров и запустить со своей машины.
В общем виде команда reg add выглядит следующим образом:
Разберем её синтаксис подробнее. Для лучшего понимания взглянем на пример записи в реестре:
Если запись будет добавляться в реестр другого компьютера, то перед именем раздела необходимо прописать имя компьютера, вот так: \имя_компьютераимя_раздела. Таким образом, Вы сразу можете прописать в 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 в случае размещения более одной записи в списке. Если разделитель не задан, то используется разделитель , заданный по умолчанию.
/d значение — значение добавляемой записи реестра.
/f — добавляет раздел или запись без запроса подтверждения. Не обязательно.
Получить подробную справку в командной строке можно, введя
reg add /?
Возвращаясь к нашему примеру. Я ввел в командную строку:
В данном случае кавычки нужны, чтобы командная строка нормально восприняла пробелы в имени раздела. Как видите, я создал параметр Primer с типом REG_DWORD и значением 0.
Вот результат данной команды:
Результат работы команды Reg Add
Вот, пожалуй, и всё, что нужно знать о добавлении записей в реестр через командную строку Windows. Помните, что редактирование реестра требует осторожности, но, в целом, он не так страшен, как его описывают. 🙂
The registry is the place where most of the applications store the settings but not only. Used also from the windows system to store important settings in order to be available to operate. We will cover a series of articles to explain how can be added, edited, and deleted the registry keys and values. This will be done using the Windows command prompt but not only. Will try to use also the PowerShell and GPO. In the end, you will be available to change them individually or over the network using batch. In this part, we will cover how to add registry key and values with command line, PowerShell, and batch file.
How to Edit Registry Key/value
How to Delete Registry Key/value
How to add registry key and value with CMD
Add Registry Key CMD
Reg Add Regkey /v RegValue /t RegType /d data
Add Registry Value CMD
How to add Registry key and value with PowerShell
Add Registry Key Powershell
# Create new items with values
New-ItemProperty -Path ‘HKCU:SoftwareNewTestKey’ -Name ‘TestValue’ -Value ‘1’ -PropertyType ‘DWORD’ –Force
# Get out of the Registry
Pop-Location
Add Registry Value PowerShell
How to add Registry key and value on a remote computer
Below is the command to add registry key on a remote computer. To run it:
REG ADD \ComputerNameHKCUSoftwareNewTestKey
Below is the command to add registry value on a remote computer. To run it:
REG ADD \ComputerNameHKCUSoftwareNewTestKey /v TestValue /t REG_DWORD /d 1
How to add registry key and value with batch file
The same commands used above to add the registry key from the command prompt can be integrated on the batch file. The commands can be used on the existing batch along with other commands or on the new batch file. To create a new batch file:
The bat files used mostly when you want to spread it over the network using GPO or SCCM
You can add registry key and value by using .reg file. This file structure can be found by exporting certain keys from the regedit interface by right-clicking on it and the export option. To create it from the screech:
The command with creating new value “TestValue” of type dword with value “1”. To execute .reg files, double-click it and after typing to the confirmation yes the changes with be done.
Add Registry Key with regedit
Conclusion
Команда REG ADD добавляет в реестр системы Windows данные необходимого типа. Для удаления данных из реестра используется команда REG DELETE.
Экспорт и импорт веток реестра (EXPORT и IMPORT)¶
Для экспорта используется команда . Синтаксис команды:
Экспортируем контейнеры закрытых ключей на рабочий стол:
Вся ветка с контейнерами успешно экспортирована на рабочий стол и сохранена в файле . Теперь импортируем ее обратно.
Команда доступна только для выполнения на локальном компьютере.
Для импорта используется команда . Синтаксис команды:
Права доступа (Разрешения)¶
Все разделы реестра имеют права доступа или разрешения. Если у текущего пользователя нет прав на определенный раздел, то будет выведено сообщение об ошибке и запрете доступа к данному разделу.
Прав доступа может не быть по нескольким причинам:
В первом случае необходимо обращаться к системному администратору, чтобы он предоставил доступ к учетной записи администратора или дал администраторские права пользователю.
Во втором случае необходимо присвоить полные права и сменить владельца.
Получение полных прав и смена владельца¶
Рис. 10 – Вызов диалога работы с разрешениями
Рис. 11 – Открытие Полного доступа гурппам и пользователям
Если отсутствует необходимый пользователь, флажок «Полный доступ» недоступен или возникает сообщение об ошибке, переходите к пункту 3.
Рис. 12 – Добавление или смена владельца
Во время добавления разрешений и владельцев могут возникать сообщения об отсутсвии прав доступа. Данные сообщения можно смело игнорировать.
Перейти на вкладку «Владелец» и добавить текущего пользователя;
Рис. 13 – Выбор владельца
На вкладке «Разрешения» нажать кнопку «Добавить»;
Рис. 14 – Добавление разрешений владельцу
В поле «Введите имена выбираемых объектов» ввести имя текущей учетной записи и нажать кнопку «Проверить имена», затем нажать «ОК»;
Рис. 15 – Ввод имени выбираемых объектов
Рис. 16 – Проверка имен
Появится диалог разрешений. Поставить галочку напротив «Полный доступ» и нажать «ОК»;
Рис. 17 – Установка полного доступа текущему владельцу
Рис. 18 – Доступ к подразделам
На рисунке 18 видно, что у текущего пользователя есть доступ к подразделу , но нет прав на открытие разделов и . Треугольника напротив подраздела может не быть, если данный подраздел пуст.
В Windows 8 и выше порядок работы с диалогом смены и добавления владельца немного отличается – владелец выбирается сверху.
Ручное добавление владельцев и прав доступа удобно, если нужно получить доступ всего к нескольким разделам. Если нужно получить доступ к большому количеству разделов, то гораздо целесообразнее воспользоваться утилитой . Работа с данной утилитой рассматривается в разделе Работа через утилиту PsExec.
Работа через утилиту PsExec¶
Для запуска редактора реестра с полными правами от имени системы можно воспользоваться программой PsExec.exe.
Рис. 20 – Отключение параметров контроля учетных записей (UAC)
В Windows 8 и выше для полного отключения контроля учетных записей (UAC) необходимо в реестре в ветке присвоить параметру значение .
Рис. 21 – Отключение параметров контроля учетных записей (UAC) в Windows 8 и выше
После отключения параметров контроля учетных записей (UAC) необходима перезагрузка.
Работа с реестром из командной строки¶
Работа с реестром возможна не только через утилиту , но и напрямую из командной строки с помощью утилиты , она поддерживает все возможности, которые имеет программа . И более того – она также поддерживает несколько особенных функций. Полезна в том случае когда работа с по каким либо причинам невозможна.
К тому же это позволяет автоматизировать многие рутинные задачи и встраивать команды в скрипты.
Создание резервной копии реестра (SAVE и RESTORE)¶
Для резервного копирования и восстановления реестра используются следующие команды (типы операций) утилиты и :
В данному разделе перечислены основные команды утилиты для получения более подробной информации обратитесь к ресурсам, перечисленным в разделе Дополнительные ссылки
Бонус. Восстановление ассоциаций ярлыков и файлов
После вирусной атаки на компьютер иногда случается так, что при попытке запуска определённого типа файлов стартует не предназначенная для этого программа.
Если с нарушением ассоциаций медиафайлов и документов легко справиться при помощи контекстного меню Открыть с помощью, то исправление нарушения запуска ярлыков и программ требует вмешательства в настройки системы.
Восстановление ассоциаций exe-файлов (исполнительных файлов, программ): exe-associations-fix
Восстановление ассоциаций lnk-файлов (ярлыков): lnk-associations-fix
Восстановление ассоциаций всех файлов (включая lnk и exe): all-associations-fix
Сегодня мы поговорили о том, что редактировать реестр Windows можно не только вручную, но и посредством reg-файлов. Добавление, редактирование, копирование и удаление данных реестра возможно и с помощью bat-файлов, о синтаксисе которых мы говорили в теме Пакетные файлы (bat, батники) Windows, но этот вопрос выходит за рамки обсуждения данной статьи и рассмотрен отдельно в публикации Редактирование реестра Windows из командной строки, bat-файлы
Добавление и удаление элементов¶
Рис. 22 – Создание разделов, подразделов и параметров
Изменение нескольких веток реестра в одном reg-файле
Если же нам необходимо изменить одним файлом ключи, расположенные в различных кустах реестра Windows, то совсем не обязательно на каждую ветку создавать отдельный файл. Для этого нам достаточно после описания параметров первой ветки добавить настройку следующей ветки с новой строки.
Для примера, приведём код, позволяющий отключить автозапуск со съёмных носителей и подключаемых устройств:
Записи настроек текущего пользователя здесь добавлены для верности, при необходимости можно вставить в создаваемый reg-файл только нужные строки.
Ручное изменение ключей реестра приемлемо в том случае, когда вам необходимо разово произвести ту или иную настройку. Но если нам нужно повторять одну настройку с определённой периодичностью или задать нужные параметры на нескольких компьютерах, то возникает необходимость в упрощении процесса правки данной базы настроек системы.
Для автоматизации процесса редактирования реестра служат специальные файлы со своим и расширением *.reg. В вышеупомянутой записи о знакомстве с реестром Windows мы уже сталкивались с подобными файлами при создании резервной копии веток реестра и восстановлении их из бэкапа. Но такие рег-файлы можно писать и самому, если придерживаться определённых правил.
Сокращения¶
Для удобства ввода применяются сокращения названий веток реестра. Все сокращения представлены в таблице ниже:
Работа с Редактором реестра¶
Редактор реестра – инструмент, предназначенный для просмотра и изменения параметров в системном реестре, в котором содержатся сведения о работе компьютера.
Способы открытия редактора реестра описаны в разделе данного руководства.
Реестр Windows хранит параметры конфигурации всей операционной системы Windows. С помощью утилиты командной строки Reg можно просматривать, добавлять, удалять, сравнивать и копировать элементы реестра. Поскольку реестр Windows крайне важен для корректной работы операционной системы, вносите изменения в реестр, лишь точно зная, как они повлияют на систему. Прежде чем редактировать реестр каким-либо способом, выполните полное резервное копирование системы и создайте снимок данных для восстановления системы. Тогда в случае ошибки вы сможете восстановить реестр и систему.
Синтаксис бат-файлов и процесс их создания описан в статье, приведённой выше, в данной же публикации затронем исключительно тему, касающуюся выполнения функции изменения реестра из командной строки.
Сразу отметим, что в bat-файлах не требуется заголовок в начале файла по типу того, что используется в reg-файлах: Windows Registry Editor Version 5.00 – здесь можно начинать писать команду с первой же строки.
Для начала приведём основные параметры, используемые при работе с реестром из командной строки:
Но, конечно, основа любого батника Windows – сама команда. Итак, приведём список команд, используемых для редактирования реестра.
– команда для добавления данных, будь то параметры, ключи или целые ветки.
Допустим, после вирусной атаки нам необходимо вернуть место хранения hosts файла (а также файлов lmhosts, networks и protocols) в директорию %SystemRoot%System32driversetc Для этого нужно выполнить команду:
reg add HKLMSYSTEMCurrentControlSetServicesTcpipParameters /v DataBasePath /t REG_EXPAND_SZ /d %%SystemRoot%%System32driversetc /f
Если немного применить фантазию и оформить батник, то код будет выглядеть примерно следующим образом:
Вот такой файл, как в архиве, у нас получится: drivers_etc
Остальные примеры в данной статье будем приводить вымышленные, дабы при их тестировании не вносить нежелательных изменений в реестр
– команда для удаления указанной информации из реестра компьютера.
Чтобы удалить определённый параметр, нам достаточно указать его полный путь после команды удаления. Пример:
Данная команда удалит параметр Save из указанной ветки.
– команда для копирования параметров и ключей из одной ветки реестра в другую.
Для копирования параметров достаточно после команды последовательно прописать сначала исходную ветку, а потом изменяемую. Например:
– команда для экспорта указанных веток реестра в виде *.reg файла на жёсткий диск.
Пример использования:
reg export HKLMSoftwareGamesFootball MyBackup.reg
В результате выполнения данной команды будет создан рег-файл с бэкапом раздела Football.
– команда, позволяющая импортировать данные из reg-файла в реестр системы.
Пример использования:
reg import MyBackup.reg
В результате выполнения данной команды записи из рег-файла будут импортированы в реестр.
– данная команда возвращает значение запрашиваемых параметров и кустов реестра.
Пример использования:
reg query HKLMSoftwareGamesFootball /v Run
В ответ будет возвращено значение параметра Run в реестре.
– команда позволяет сравнить две указанные последовательно ветки реестра.
Пример использования:
В ответ команда возвращает одно из значений: 0 – данные веток идентичны; 1 – при выполнении операции произошла ошибка; 2 – данные веток отличаются.
, , , – команды, позволяющие бэкапить и восстанавливать нужные ветки системного реестра Windows при помощи файлов *.hiv.
Добавление ключей в реестр через reg-файл
Пример выше изменяет параметры . Но бывают ситуации, когда нам нужно добавить ключ, которого нет в реестре на данный момент. Напомним, что в статье о реестре Windows, упомянутой в начале данной записи, мы выделяли один момент:
В первую очередь отметим, что некоторые ключи имеют дефолтные значения. Это значит, что даже если конкретный ключ отсутствует в своей ветке, система будет вести себя, будто ему присвоен параметр по умолчанию.
Например, код reg-файла, позволяющего отключить автоматическую перезагрузку компьютера в случае появления синего экрана BSOD, будет выглядеть следующим образом:
где – это тип данных добавляемого ключа реестра.
Загрузка и выгрузка куста¶
Допустим, имеется жесткий диск с нерабочего компьютера. Чтобы получить доступ к определенным веткам реестра, который хранится на этом жестком диске, необходимо:
Рис. 6 – Выбор ветки
Рис. 7 – Выбор ветки
Рис. 8 – Выбор ветки
Рис. 9 – Присвоение произвольного имени разделу
В соответсвии с примером, в ветку работающего компьютера была загружена ветка с неработающего компьютера.
Для загрузки других веток реестра, необходимо выбирать соответствующие файлы на жестком диске. Таблица соответсвия веток реестра и файлов на жестком диске приведена в главе Файлы реестра на жестком диске данного руководства.
Также допустимо скопировать папку на обыкновенную флешку и загружать требуемые кусты с нее.
При работе с загруженными кустами есть нюанс, который заключается в разрешениях (правах) на доступ к тем или иным разделам. Подробнее о разрешениях написано в разделе Права доступа (Разрешения) данной главы.
Более простой способо обойти подводные камни с разрешениями на ветки заключается в использовании утилиты , работа с которой описана в разделе Работа через утилиту PsExec.
Восстановление реестра из резервной копии (Импорт)¶
Чтобы импортировать сохраненный файл реестра, достаточно дважды нажать левой кнопкой мыши по файлу с расширением .
Операции экспорта и импорта используются не только для создания резервных копий. Практическое использование данных функций рассмотрено в главе Практические приёмы работы с Реестром данного руководства.
Разделы и параметры реестра Windows
Реестр Windows хранит конфигурационную информацию операционной системы, приложений, пользователей и оборудования. Эти данные содержатся в разделах (keys) и параметрах (values) реестра, которые размещаются в определенном корневом разделе (root key), который контролирует, как и когда используются разделы и параметры. В корневых разделах вы найдете главные разделы (main keys), управляющие параметрами системы, пользователей, приложений и оборудования. Эти разделы организованы в древовидную структуру, где разделы представлены папками. Так, в разделе HKEY_LOCAL MACHINESYSTEMCurrentControlSetServices находятся папки для всех служб, установленных в системе. В этих папках содержатся разделы реестра, хранящие важную конфигурационную информацию, и их подразделы (subkeys). Нужные разделы реестра задаются через их пути к папкам.
Команда REG управления реестром из командной строки
REG поддерживает несколько подкоманд, и мы рассмотрим некоторые из них.
Создание резервной копии реестра (Экспорт)¶
Прежде чем вносить изменения в реестр, рекомендуется выполнить экспорт и создать его резервную копию. Можно сделать резервную копию как всего реестра в целом, так и отдельных разделов и подразделов. Позже эту резервную копию можно импортировать, чтобы отменить внесенные изменения.
Перед внесением каких-либо изменений в реестр всегда создавайте его резервную копию!
Чтобы создать полную копию реестра необходимо:
Рис. 5 – Экспорт веток реестра. Создание резервной копии.
Экспортированный файл будет иметь расширение .
Экспортированные из реестра файлы с расширением являются простыми текстовыми файлами, их можно открыть любым простым текстовым редактором (Notepad++, Блокнот).
Синтаксис команды REG ADD
Выше мы рассмотрели достаточно широкие возможности батников в работе с реестром операционной системы. Последний момент, который отметим в контексте данной темы – это редактирование реестра компьютеров в локальной сети.
Ну и главное: чтобы работать с реестром компьютера в сети, необходимо в применяемой команде перед разделом указать имя удалённой машины, начинающееся с двойного обратного слеша.
При этом, в командах, обрабатывающих сразу несколько разделов (например, копирование из одного раздела в другой, сравнение веток), одна из веток может располагаться на локальном компьютере, а другая на компьютере в сети.
То есть, для копирования ветки с удалённой машины на наш компьютер необходимо выполнить следующую команду:
На этом заключительную статью описания общих принципов работы с реестром компьютера и с bat-файлами можно считать завершённой.
Безошибочных вам команд и корректных ключей реестра.
Точнее сказать, мы, разумеется, не будем раз за разом вручную прописывать нужные параметры в окне консоли, не для этого данный способ нужен, мы рассмотрим вариант внесения изменений в системный реестр Windows при помощи bat-файлов.
Достаточно подробно о создании и использовании батников речь шла в записи Пакетные файлы (bat, батники) Windows, ещё одна функция, которую можно и нужно использовать – изменение записей реестра при помощи cmd языка.
Использование батников для редактирования реестра иногда может быть выгоднее и удобнее, нежели работа со стандартными для этих целей reg-файлами.
Удаление веток реестра reg-файлом
Выше мы рассмотрели синтаксис registry-файлов для и . Но как писать файл, если нам надо удалить хвосты в реестре, допустим, после деинсталляции программы.
Пример конкретных программ рассматривать не будем, а решим задачу по удалению из окна Проводника на вкладке Мой компьютер лишних папок: Видео, Документы, Загрузки, Изображения, Музыка, Рабочий стол
Пишем reg-файл, в котором перед каждой веткой для удаления ставим минус:
И по традиции готовый файл редактирования реестра: folders_remove
Вывод содержимого ветвей (QUERY)¶
Команда отправляет в системный реестр Windows запрос о содержимом ветвей, ключей, подразделов или параметров, и выводит на экран результат обработки этих запросов. В общем виде синтаксис данной команды записывается следующим образом:
В составе директивы могут использоваться следующие параметры:
В качестве примера получим содержимое ветки в которой хранятся закрытые ключи квалифицированных электронных подписей:
Лучше вводить путь в кавычках.
Будет выведен примерно такой результат:
\ \\
\ \\
Как видно из вывода, в реестре компьютера находится всего один контейнер .