Найти тему
Заметки IT-шника

Как найти, что в реестре меняет программа? Читай ниже.

Оглавление

Введение

В больших конторах, таких как банки, часто IT-поддержка осуществляется по многоуровневой схеме. И чем больше структура, тем сложнее в ней все точки соприкосновения линий поддержки, как следствие запрос на внесение небольшого изменения в политику решающего определенную проблему у пользователя перерастает в кучу согласований и не нужной волокиты. Если мешает в работе это нескольким пользователям, то чем согласовывать изменения - проще сделать "костыли"(сделать решение, не правильное по своей сути, но рабочее).

К примеру. Доменной политикой прилетает изменение в Internet Explorer режим обработки всплывающего окна устанавливается "способ определяет Internet Explorer", а чтобы у пользователя все работало нужен "Всегда открывать всплывающие окна в новой вкладке", или политика снимает галку "отображать сайты интрасети в режиме совместимости", а это необходимо для некоторых порталов. Что делать если не удается договориться об включении изменений в политику? Остается только ставить очередные "костыли". Находим что нужно менять, создаем .bat файл, добавляем его в планировщик заданий с реакцией на событие, которое происходит при обновлении политики - PROFIT. Каждый раз после применения политики будет выполняться .bat файл и возвращать нужные нам значения на место.

Основная часть

Сегодня речь поведем о том, как же найти те самые значения, которые мы хотим изменять. Очень многое хранится в реестре, но как найти нужный нам параметр в огромном дереве каталогов реестра? Лично мне помогла в этом программа Process Monitor от Microsoft Sysiternals

Для программы нужны права администратора ПК. Итак запускаем программу.

так выглядит окно программы.
так выглядит окно программы.

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

фильтр событий
фильтр событий

Здесь можно добавлять условия для отображения. Для рассмотренных выше двух проблемах с галками в Internet Explorer нам нужно отфильтровать первым делом события, связанные с этим приложением. Для этого нажимаем на первое окошко и выбираем там "Process Name", а в пустом на скриншоте выше окошке выбираем из списка IEXPLORE.EXE и нажимаем ADD(Добавить)

добавили фильтр по приложению Iexplore.exe
добавили фильтр по приложению Iexplore.exe

При работе Internet Explorer выполняет много различных изменений и найти в них что-то также не представляется возможным.

огромное количество изменений
огромное количество изменений

Очевидно, что нам не нужны все эти события. Нам нужно найти события когда Internet Explorer будет записывать/изменять значения в реестре. Операция изменения в реестр называется RegSetValue. Добавляем в фильтр указанную операцию

добавили операцию RegSetValue
добавили операцию RegSetValue

Я получил чистый лист, но если у вас там отфильтровались какие-то события - нажмите на кнопку с красной урной на панели, чтобы удалить события. Теперь переходим в Internet Explorer и изменяем там положения нужных нам галочек. Я снял галку "отображать сайты интрасети в режиме совместимости". Смотрим в Process Monitor и видим, что появились события. В частности за ту самую галку отвечает параметр HKCU\SOFTWARE\Microsoft\Internet Explorer\BrowserEmulation\IntranetCompatibilityMode

Значение 0 - выключено, 1 выключено.

отфильтрованные события.
отфильтрованные события.

Чистим события нажав на красную урну. Теперь попробуем посмотреть какой параметр отвечает за режим обработки всплывающих окон. Идем в Internet Explorer и ставим галку

было
было
стало
стало

Отфильтровались у нас несколько параметров, ведь у нас несколько настроек там, а кнопка применения одна для всех галок.

отобранные значения.
отобранные значения.

Чтобы найти нужный параметр переставим галку у нужного пункта обратно в исходное состояние.

Как видим отфильтровались те же параметры, но у одного отличается значение. В выделенной строке 2, а ниже в том же параметре 0. Это и есть нужный нам параметр

отфильтрованные параметры после перестановки галочки во второй раз.
отфильтрованные параметры после перестановки галочки во второй раз.

Нужный нам параметр

HKCU\SOFTWARE\Microsoft\Internet Explorer\TabbedBrowsing\PopupsUseNewWindow

А значение в соответствии с тем, что нам необходимо, в мое случае - это 2.

Заключение

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