Введение

Более половины всех пользователей ПК в какой-то момент задумываются об автоматизации настроек своей операционной системы. Всем известно, что в операционных системах Windows централизованным хранилищем для большинства настроек самой системы и установленных приложений является системный реестр. В реестре хранятся сотни тысяч параметров, которые отвечают за различные настройки. Зная, что в разделе HKEY_CURRENT_USER расположены настройки учетной записи пользователя, в HKEY_LOCAL_MACHINE – настройки компьютера, а раздел HKEY_CLASSES_ROOT отвечает за запуск необходимой программы при открытии файла с помощью проводника, область поиска необходимого параметра сокращается, хотя найти нужный параметр все равно очень сложно. Использовать твикеры реестра не рекомендуется, так как они могут записывать в реестре ненужные разделы и параметры, а поиск в интернете ничего не дает. В этом случае вам следует воспользоваться программами, предназначенными для мониторинга реестра. В этой статье речь пойдет о RegShot и Process Monitor – утилите Sysinternals, предназначенной для мониторинга операционной системы Windows, которая в режиме реального времени отображает активность файловой системы, реестра, а также процессов и потоков.

Использование программы RegShot

RegShot – это небольшая утилита, предназначенная для фиксации изменений в системном реестре операционных систем Windows. Эта утилита может делать снимки системного реестра, сравнивать два снимка и находить между ними все изменения. Все настройки программы сохраняются в файле конфигурации regshot.inf, а языковые настройки хранятся в файле language.inf. Основным преимуществом программы является то, что она не интегрируется в систему и не записывает в реестр никакой информации. Рассмотрим принципы работы этой утилиты на простом примере.

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

  1. Загрузите программу, перейдя по следующей ссылке, распакуйте содержимое архива и запустите файл regshot.exe;
  2. Перед тем как вы начнете вносить изменения в настройки браузера, сделайте первый снимок реестра, нажав на кнопку «1й снимок»;
    mon_reg-01
  3. После того как первый снимок будет сделан, откройте настройки браузера («Сервис» > «Свойства обозревателя» или введите inetcpl.cpl в поле поиска меню «Пуск» или в диалоге «Выполнить»). Перейдите на вкладку «Дополнительно», на опции «Подчеркивать ссылки» установите переключатель на «Никогда» и нажмите на кнопку «Применить»;
    mon_reg-02
  4. Вернитесь в программу RegShot и нажмите на кнопку «2й снимок» для создания снимка реестра с измененным параметром;
    mon_reg-03

    Программа RegShot позволяет сохранять изменения реестра в текстовый и в HTML форматы. Для того чтобы выбрать формат отчетов, установите переключатель на нужной опции в разделе «Сохранить файл отчетов как:».

    В утилите RegShot вы можете также указать путь для сохранения файлов. Для этого введите путь вручную в поле «Путь для сохранения» или воспользуйтесь кнопкой обзор для выбора папки при помощи диалогового окна «Обзор папок».

    После того как второй снимок реестра будет доделан нажмите на кнопку «Сравнить».

    mon_reg-04

  5. По завершению сравнения снимков реестра откроется программа установленная по умолчанию, предназначенная для открытия выбранного вами типа файла. В данном случае, так как был выбран текстовый формат, отчет открывается в программе «Блокнот». На следующем скриншоте выделены строки, отвечающие за изменение данной настройки.
    mon_reg-05

После того как отчет будет сформирован вы можете очистить из буфера программы 1й, 2й снимок, а также очистить оба снимка сразу.

mon_reg-06

Отчет в формате HTML выглядит аккуратней и является более удобным, так как в нем строки со старым значением выделены зеленым цветом, для лучшего восприятия.

mon_reg-07

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

В данном случае должен получиться такой reg-файл:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMain]
"Anchor Underline"="no"

Если вам нужно найти сразу несколько параметров реестра, отвечающих за разные настройки, лучше всего находить эти параметры поочередно.

Использование программы Process Monitor

Если утилита RegShot предназначена только для фиксации изменений в системном реестре, то утилита Process monitor от Sysinternals, которая написана на основе утилит FileMon и RegMon, предназначена для мониторинга операционной системы Windows, которая в режиме реального времени отображает активность файловой системы, реестра, а также процессов и потоков. При помощи этой утилиты вы можете выполнять следующие действия:

  • отслеживать запуск и завершения работы процессов и потоков, включая информацию о коде завершения;
  • собирать данные о параметрах операций ввода и вывода;
  • устанавливать фильтры для отображения только нужной информации;
  • записывать в журнал все операции во время загрузки системы.

и многое другое.

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

  1. Загрузите программу ProcessMonitor с сайта Sysinternals.com, распакуйте содержимое архива и запустите файл Procmon.exe. Для работы утилиты Process Monitor необходимо зайти под учетной записью, входящей в группу «Администраторы»;
  2. Перед запуском этой утилиты в первый раз отобразится диалоговое окно с лицензионным соглашением. Прочитайте его и нажмите на кнопку «Agree»;mon_reg-08
  3. В случае появления запроса контроля учетных записей пользователей предоставьте подтверждение.mon_reg-09
  4. В окне Process Monitor вы можете увидеть все изменения системы в режиме реального времени. Вы можете перетаскивать колонки, изменить их порядок и настроить отображение столбцов утилиты. Для этого в меню «Options» выберите команду «Select Columns» или нажмите правой кнопкой мыши на любом месте заголовка столбцов и в контекстном меню выберите команду «Select Columns». В рамках этой статьи я не буду акцентировать внимание на значении выбираемых столбцов.mon_reg-10
  5. По умолчанию, утилита Process Monitor следит за системными файлами, реестром, процессами, сетевой активностью, а также за событиями профилирования. Так как в этом примере нужно проследить только за системным реестром, оставьте активной только кнопку «Show Registry Activity», как показано на следующем скриншоте:mon_reg-11
  6. Даже после того, как вы оставите только мониторинг системного реестра, вам будет трудно разобраться во всех создаваемых записях. Для облегчения поиска нужного параметра реестра и его значения, вам нужно настроить фильтр. Чтобы открыть диалоговое окно фильтра, выполните одно из следующих действий:
    • В меню «Filter» выберите команду «Filter»;
    • Воспользуйтесь комбинацией клавиш Ctrl+L;
    • Нажмите на кнопку «Filter» на панели инструментов программы.

Диалоговое окно фильтра позволяет указывать атрибуты, которые будут отображаться или исключаться событиями, соответствующими значениям атрибутов. В этом примере нужно воспользоваться только тремя типами атрибутов:

  • EventClass – тип события, охватывающий один из основных классов событий (FileSystem, Network, Process, Profiling или Registry);
  • Operation – действия, которые выполняет система;
  • Process Name – имя процесса, за которым необходимо следить.

В этом примере будут использоваться только некоторые значения атрибута Operation. Краткое описание некоторых действий:

RegCloseKey – закрывает дескриптор указанного раздела реестра;

RegOpenKey – открывает дескриптор указанного раздела реестра;

RegCreateKey – создает дескриптор указанного раздела реестра;

RegQueryKey – возвращает значение параметров, связанных с открытым разделом реестра;

RegEnumKey – перечисляет подразделы указанного открытого раздела реестра;

RegDeleteKey – удаляет дескриптор указанного раздела реестра;

RegSetValue – изменяет значение указанного параметра реестра;

В диалоговом окне «Process Monitor Filter» для начала удалите все фильтры. Затем выполните следующие действия:

  • Из первого раскрывающегося списка выберите атрибут «EventClass». Во втором раскрывающемся списке оставьте значение «is». В третьем раскрывающемся списке выберите значение «File System», а затем выберите «Exclude». Нажмите на кнопку «Add».Повторите эти действия для классов «Network», «Process» и «Profiling».
  • Из первого раскрывающегося списка выберите атрибут «Process Name». Во втором раскрывающемся списке оставьте значение «is». В третьем раскрывающемся списке введите имя процессов, за которыми нужно проследить. В этом примере мы будем следить за процессами iexplore.exe и opera.exe.
  • Из первого раскрывающегося списка выберите атрибут «Operation». Во втором раскрывающемся списке оставьте значение «is». В третьем раскрывающемся списке выберите значения, которые отображены на следующем скриншоте.

mon_reg-12

Также вместо того чтобы исключать некоторые действия, вы можете просто установить «Include» для действия «RegSetValue».

mon_reg-13

После того как нужные фильтры будут выбраны, нажмите на кнопку «ОК». Во время применения фильтров вы увидите следующий диалог:

mon_reg-14

Остановите мониторинг реестра до того как вам нужно будет проверять изменения. Для этого нажмите на кнопку «Capture» на панели инструментов, или воспользуйтесь комбинацией клавиш Ctrl+E. Очистите содержимое программы, нажав на кнопку «Clear» или при помощи комбинации клавиш Ctrl+X.

Если у вас установлен по умолчанию браузер Internet Explorer, откройте Opera и дождитесь появления диалога с предложением сделать его по умолчанию. После появления этого диалога перейдите в Process Monitor и включите мониторинг при помощи кнопки «Capture». Снова перейдите в Opera и установите его браузером по умолчанию.

После выполнения этих действий вернитесь в Process Monitor и остановите мониторинг. Окно программы Process Monitor будет выглядеть примерно следующим образом:

mon_reg-15

Среди отобразившихся значений нетрудно заметить, что все изменения, которые относятся к установке браузера по умолчанию, хранятся в разделе HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts. Значение измененного параметра вы можете увидеть в столбце Details или открыв диалог свойств события:

mon_reg-16

В итоге получается следующий твик реестра:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.htmUserChoice]
"Progid"="Opera.HTML"
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.htmlUserChoice]
"Progid"="Opera.HTML"
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.xhtmUserChoice]
"Progid"="Opera.HTML"
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.xhtmlUserChoice]
"Progid"="Opera.HTML"
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.xhtUserChoice]
"Progid"="Opera.HTML"
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.mhtUserChoice]
"Progid"="Opera.HTML"
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.mhtmlUserChoice]
"Progid"="Opera.HTML"
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.httpUserChoice]
"Progid"="Opera.HTML"
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.httpsUserChoice]
"Progid"="Opera.HTML"
Реклама