Редактирование системного реестра Windows - полезное умение в руках каждого пользователя. В статье Изменение параметров cистемного реестра Windows мы познакомились с самим реестром, его структурой и рассмотрели примеры с изменениями параметров его ключей. Сегодня мы поговорим о том, как автоматизировать процесс правки реестра и сделать его удобнее и быстрее.
Содержание статьи:
Создание reg-файлов для правки реестра
Ручное изменение ключей реестра приемлемо в том случае, когда вам необходимо разово произвести ту или иную настройку. Но если нам нужно повторять одну настройку с определённой периодичностью или задать нужные параметры на нескольких компьютерах, то возникает необходимость в упрощении процесса правки данной базы настроек системы.
Для автоматизации процесса редактирования реестра служат специальные файлы со своим синтаксисом и расширением *.reg. В вышеупомянутой записи о знакомстве с реестром Windows мы уже сталкивались с подобными файлами при создании резервной копии веток реестра и восстановлении их из бэкапа. Но такие рег-файлы можно писать и самому, если придерживаться определённых правил.
Синтаксис reg-файлов
Для примера мы поменяем клавиши смены языка ввода с Alt + Shift на Ctrl + Shift.
На интересует ветка реестра
HKEY_CURRENT_USER\Keyboard Layout\Toggle
И ключи Hotkey, Language Hotkey и Layout Hotkey, которые имеют значения по умолчанию 1, 1 и 2, соответственно.
Для изменения сочетания клавиш нам нужно будет присвоить им новые значения "Hotkey"="2", "Language Hotkey"="2", "Layout Hotkey"="3"
Итак, для создания reg-файла открываем текстовый редактор, например, Блокнот Windows. Вставляем в окно редактора следующий код:
Windows Registry Editor Version 5.00 ;Переключение языка по левым Ctrl + Shift [HKEY_CURRENT_USER\Keyboard Layout\Toggle] "Hotkey"="2" "Language Hotkey"="2" "Layout Hotkey"="3"
Windows Registry Editor Version 5.00 - это строка приветствия системы, позволяющая Windows определить, какого типа файл был запущен. Обязательна в начале всех reg-файлов, прописывается один раз.
;Переключение языка по левым Ctrl + Shift - строка комментария. Любая строка файла изменения реестра, начинающаяся точкой с запятой, не будет исполняться системой, служит для пояснительных записей. Комментарии прописываются сколько угодно раз.
[HKEY_CURRENT_USER\Keyboard Layout\Toggle] - куст реестра, в котором будут производиться изменения. О множественных записях подробно отметим чуть ниже.
"Hotkey"="2", "Language Hotkey"="2", "Layout Hotkey"="3" - ключи реестра, расположенные в обрабатываемой ветке, и задаваемые им параметры. Каждый ключ с новой строки.
После этого жмём в меню текстового редактора на кнопку Файл, выбираем пункт Сохранить как, в строке Тип файла выбираем Все файлы, а в строке Имя файла задаём название, в конце которого ставим точку и дописываем расширение .reg.
Готовые файлы реестра для настройки сочетания клавиш смены языка можно скачать ниже:
Смена языка по Alt + Shift: language_alt_shift
Смена языка по Ctrl + Shift: language_ctrl_shift
Добавление ключей в реестр через reg-файл
Пример выше изменяет параметры существующих ключей. Но бывают ситуации, когда нам нужно добавить ключ, которого нет в реестре на данный момент. Напомним, что в статье о реестре Windows, упомянутой в начале данной записи, мы выделяли один момент:
В первую очередь отметим, что некоторые ключи имеют дефолтные значения. Это значит, что даже если конкретный ключ отсутствует в своей ветке, система будет вести себя, будто ему присвоен параметр по умолчанию.
Например, код reg-файла, позволяющего отключить автоматическую перезагрузку компьютера в случае появления синего экрана BSOD, будет выглядеть следующим образом:
Windows Registry Editor Version 5.00 ;Отключить автоматическую перезагрузку в случае BSOD [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl] "AutoReboot"=dword:00000000
где dword: - это тип данных добавляемого ключа реестра.
Готовый файл, отключающий перезагрузку Windows при падении системы в BSOD, можно скачать здесь: bsod_reboot_off
Изменение нескольких веток реестра в одном reg-файле
Если же нам необходимо изменить одним файлом ключи, расположенные в различных кустах реестра Windows, то совсем не обязательно на каждую ветку создавать отдельный файл. Для этого нам достаточно после описания параметров первой ветки добавить настройку следующей ветки с новой строки.
Для примера, приведём код, позволяющий отключить автозапуск со съёмных носителей и подключаемых устройств:
Windows Registry Editor Version 5.00 ;Отключить автозапуск носителей и устройств Windows для всех пользователей [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer] "NoDriveTypeAutoRun"=dword:000000ff [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdrom] "AutoRun"=dword:00000000 ;Отключить автозапуск носителей и устройств Windows для текущего пользователя [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer] "NoDriveTypeAutoRun"=dword:000000ff [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers] "DisableAutoplay"=dword:00000001
Записи настроек текущего пользователя здесь добавлены для верности, при необходимости можно вставить в создаваемый reg-файл только нужные строки.
Готовый reg-файл для отключения автозапуска со съёмных носителей можно скачать отсюда: autorun_off
Удаление веток реестра reg-файлом
Выше мы рассмотрели синтаксис registry-файлов для добавления и изменения параметров. Но как писать файл, если нам надо удалить хвосты в реестре, допустим, после деинсталляции программы.
Пример конкретных программ рассматривать не будем, а решим задачу по удалению из окна Проводника на вкладке Мой компьютер лишних папок: Видео, Документы, Загрузки, Изображения, Музыка, Рабочий стол
Пишем reg-файл, в котором перед каждой веткой для удаления ставим минус:
Windows Registry Editor Version 5.00 ; Удаление папки "Рабочий стол" [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}] ; Удаление папки "Документы" [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}] ; Удаление папки "Загрузки" [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{374DE290-123F-4565-9164-39C4925E467B}] ; Удаление папки "Музыка" [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{1CF1260C-4DD0-4ebb-811F-33C572699FDE}] ; Удаление папки "Изображения" [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3ADD1653-EB32-4cb0-BBD7-DFA0ABB5ACCA}] ; Удаление папки "Видео" [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A0953C92-50DC-43bf-BE83-3742FED03C9C}]
И по традиции готовый файл редактирования реестра: folders_remove
Бонус. Восстановление ассоциаций ярлыков и файлов
После вирусной атаки на компьютер иногда случается так, что при попытке запуска определённого типа файлов стартует не предназначенная для этого программа.
Если с нарушением ассоциаций медиафайлов и документов легко справиться при помощи контекстного меню Открыть с помощью, то исправление нарушения запуска ярлыков и программ требует вмешательства в настройки системы.
Однако, испорченные ассоциации файлов легко исправить при помощи подходящих reg-файлов, восстанавливающих настройки Windows к исходным значениям. Ниже вы можете скачать нужный вам файл реанимации реестра.
Восстановление ассоциаций exe-файлов (исполнительных файлов, программ): exe-associations-fix
Восстановление ассоциаций lnk-файлов (ярлыков): lnk-associations-fix
Восстановление ассоциаций всех файлов (включая lnk и exe): all-associations-fix
Сегодня мы поговорили о том, что редактировать реестр Windows можно не только вручную, но и посредством reg-файлов. Добавление, редактирование, копирование и удаление данных реестра возможно и с помощью bat-файлов, о синтаксисе которых мы говорили в теме Пакетные файлы (bat, батники) Windows, но этот вопрос выходит за рамки обсуждения данной статьи и рассмотрен отдельно в публикации Редактирование реестра Windows из командной строки, bat-файлы
А возможно как-то удалить один элемент в разделе? Ну например в разделе
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
есть два элемента. egui и SecurityHealth. Возможно удалить только элемент SecurityHealth не трогая egui?
А возможно как-то сделать удаление элемента в ветке? Ну например в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\test
удалить элемент test со значением 19?
Просто я хотел удалить в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
один элемент, но их там несколько. Подскажите пожалуйста, очень нужно.
.
помогите составить запись реестра из :
reg add «HKey_Local_Machine\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman» /f /v ClientMinKeyBitLength /t REG_DWORD /d 0x00000800
reg add «HKey_Local_Machine\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman» /f /v ServerMinKeyBitLength /t REG_DWORD /d 0x00000800
Должно работать: Diffie-Hellman