Файл: Руссинович М., Маргозис А. Утилиты Sysinternals. Справочник администратора 2012.pdf
Добавлен: 29.10.2018
Просмотров: 33061
Скачиваний: 742

Process Monitor
Глава 4 127
под системной учетной записью, как неинтерактивной системной службы.
Для этого нужно применить кое-какие хитрости, поскольку вы не сможете
управлять данным экземпляром Procmon обычным способом:
• необходимо указать файл для записи данных в командной строке с по-
мощью параметра /BackingFile. Помните, что изменить его до остановки
программы вы не сможете, а при перезапуске Procmon под системной за-
писью без указания другого файла поддержки ранее записанная трасси-
ровка будет затерта;
• в командной строке должны быть параметры /AcceptEula и /Quiet, что-
бы Procmon не выводил диалоговые окна, которые не удастся закрыть;
• Procmon должен необходимо корректно останавливать. Чтобы сделать
это, не выключая систему, нужно выполнить Procmon /Terminate тем же
образом, что и первую команду.
Более подробно об этих параметрах рассказывается ниже, о сеансах см. в
главе 2, а о PsExec — в главе 6.
Ниже приведен пример команды для запуска трассировки Procmon, про-
должающейся и после выхода из системы:
PsExec -s -d Procmon.exe /AcceptEula /Quiet /BackingFile C:\Procmon.pml
Завершает трассировку следующая команда:
PsExec -s -d Procmon.exe /AcceptEula /Terminate
Параметр PsExec -d позволяет завершить PsExec, не дожидаясь заверше-
ния конечного процесса.
Экземпляр Procmon, запущенный с помощью PsExec под системной
учетной записью, во время завершения работы системы заканчивает реги-
страцию при уничтожении CSRSS процессов пользовательского режима,
продолжить мониторинг дальше позволяет только журнал загрузки.
Длительная трассировка и управление
размером журналов
Файлы трассировки Procmon могут быть очень большими, особенно трас-
сировки загрузки и прочих длительных процессов. В таких ситуациях будут
полезны функции управления размерами журнала.
Удаление отфильтрованных событий
Обычно Procmon регистрирует всю активность системы, включая события,
скрытые фильтрами. Это дает возможность изучать разные аспекты работы
системы, изменяя фильтры. Тем не менее, если заранее известно, что часть
данных длинной трассировки не потребуется, можно освободить от них
журнал с помощью параметра Drop Filtered Events (Удаление
отфильтро-
ванных событий) в меню Filter.
SIN_ch_04.indd 127
27.12.2011 14:16:28

128 Часть
II
Работа с утилитами
Когда активен параметр Drop Filtered Events события, не соответству-
ющие критериям фильтров, не попадают в журнал, что позволяет держать
под контролем его размер. Разумеется, эти данные восстановить не удастся.
Данный параметр действует только на регистрацию текущих событий, ранее
записанные события из журнала не удаляются.
Обратите внимание на то, что фильтрация не действует при трассиров-
ке загрузки, поэтому параметр Drop Filtered Events не уменьшает размер
журнала трассировки загрузки. Однако, фильтры и параметр Drop Filtered
Events применяются во время последующей обработки журнала загрузки.
Поэтому для удаления лишних событий при просмотре активности процес-
са System и других низкоуровневых событий не забудьте активировать пара-
метр Enable Advanced Output в меню Filter перед перезагрузкой.
Длина трассировки
Process Monitor отслеживает объем переданной ему памяти и прекращает
захват событий, когда виртуальная память системы заканчивается. Открыв
диалоговое окно History Depth (Длина трассировки) (рис. 4-20) в меню
Options, можно ограничить число хранящихся записей и оставить Process
Monitor работать на длительное время, гарантируя захват последних собы-
тий. Число регистрируемых событий варьируется от 1 до 199 миллионов (по
умолчанию — 199 миллионов).
Рис. 4-20. Диалоговое окно History Depth
Файлы для записи данных
По умолчанию Procmon сохраняет зарегистрированные данные в виртуаль-
ной памяти. Если виртуальная память заканчивается, Procmon автоматиче-
ски завершает запись с сообщением об ошибке. Если нужно записать больше
данных, чем вмещает виртуальная память, можно настроить Procmon для
сохранения данных в файлах на диске. Размер файла, используемого для
этой цели, ограничен лишь размером свободного места на жестком диске.
Можно настраивать и просматривать информацию о файлах для запи-
си, выбрав Backing Files (Резервные файлы) в меню File — откроется диа-
логовое окно Process Monitor Backing Files, изображенное на рис. 4-21.
Изменения настройки файлов для записи вступят в силу при записи в но-
вый журнал или после очистки текущего.
SIN_ch_04.indd 128
27.12.2011 14:16:28

Process Monitor
Глава 4 129
Рис. 4-21. Диалоговое окно Process Monitor Backing Files
Имейте в виду, что при выборе записи в файл Procmon будет создавать
дополнительные файлы, чтобы файлы с данными не стали слишком боль-
шими. Имена таких файлов генерируются на основе базового имени, к кото-
рому прибавляются возрастающие номера (рис. 4-22). Файлы с одинаковым
базовым именем, хранящиеся в одной папке, Procmon считает одним жур-
налом.
Диалоговое окно Process Monitor Backing Files отображает также ин-
формацию по диагностике, в том числе, захваченные события и число на-
блюдаемых процессов.
Рис. 4-22. Диалоговое окно Process Monitor Backing Files
Импорт и экспорт параметров конфигурации
Меню File позволяет экспортировать в .PMC-файл полную конфигурацию
программы, включая фильтры, правила подсветки, отображаемые поля, их
порядок и размер, файлы для записи данных, символы, расширенный вывод
и сброс отфильтрованных событий. Экспортированную конфигурацию мож-
SIN_ch_04.indd 129
27.12.2011 14:16:28

130 Часть
II
Работа с утилитами
но импортировать в другую систему или загружать с параметром командной
строки /LoadConfig (см. следующий раздел). Можно создать несколько яр-
лыков Procmon с различными файлами конфигурации /LoadConfig для раз-
личных задач. Фильтры также можно импортировать и экспортировать по
отдельности (подробнее см. выше).
Примечание Procmon хранит все свои параметры конфигурации в разделе реестра
HKEY CURRENT USER\Software\Sysinternals\Process Monitor. Простейший способ вос-
становить конфигурацию Procmon по умолчанию — закрыть все экземпляры Procmon,
удалить этот раздел реестра и снова запустить Procmon. При просмотре журналов Proc-
mon из систем x86 в 64-разрядных версиях Windows 32-разрядная версия Procmon со-
храняет свои параметры конфигурации в HKCU\Software\S
y
sinternals\ProcessMonitor32.
Автоматизация Procmon: параметры
командной строки
Procmon поддерживает параметры командной строки, удобные при вызове
программы из сценариев. Допустим, начинающему пользователю нужно за-
пустить Procmon с определенной конфигурацией, чтобы подготовить для
вас трассировку. Чтоб не «разжевывать» пользователю настройку и запуск
Procmon, можно просто дать ему командный файл с нужными параметрами.
Меню Help (Справка) Procmon включает краткий обзор параметров ко-
мандной строки Procmon. Более подробно они описаны в табл. 4-4.
Табл. 4-4. Параметры командной строки
Параметр
Описание
/OpenLog
pm/-f//e
Открывает сохраненный ранее файл журнала (трассировку)
Procmon. Обратите внимание: файл журнала должен экземпля-
ром Procmon, совместимым с архитектурой ЦП системы,
в которой он был записан
/BackingFile
pml-file
Сохраняет события в указанном файле. Размер файла ограничен
размером свободного места на диске. Имейте в виду, что данный
параметр во время работы программы изменить нельзя (подроб-
нее см. выше)
/PagingFile
Сохраняет события в виртуальной памяти, ограниченной систем-
ным файлом подкачки. Используется для восстановления для от-
мены параметра /BackingFile
/NoConnect
Запускает Procmon, но не начинает автоматический захват дан-
ных (по умолчанию регистрация событий начинается при запуске
программы)
/NoFilter
Сбрасывает фильтр при запуске. Все правила фильтра, кроме
исключающих события трассировки, удаляются
/AcceptEula
Подавляет вывод окна с лицензионным соглашением (подразуме-
вает согласие с условиями лицензионного соглашения)
/LoadConfig
config-file
Загружает сохраненный ранее файл конфигурации (подробнее
см. ниже)
SIN_ch_04.indd 130
27.12.2011 14:16:29

Process Monitor
Глава 4 131
Табл. 4-4. (окончание)
Параметр
Описание
/Profiling
Активирует функцию Thread Profiling
/Minimized
Запускает Procmon в свернутом виде
/WaitForldle
Ожидает готовности другого экземпляра Procmon на том же
рабочем столе Win32 для приема команд. Пример использования
данного параметра см. ниже
/Terminate
Прекращает работу всех экземпляров Procmon, работающих
на одном рабочем столе Win32, а затем выполняет выход. Этот
параметр использует оконные сообщения для отправки команды
конечному экземпляру Procmon (см. Раздел Главы 2 «Сеансы,
оконные станции, рабочие столы и оконные сообщения»)
/Quiet
Не подтверждает установки фильтров во время запуска. По умол-
чанию, если правила фильтров были настроены, Procmon отобра-
жает диалоговое окно Filter позволяя изменять их перед записью
данных
/Run32
Запускает 32-разрядную версию для загрузки 32-разрядных фай-
лов журналов (только в x64)
/HookRegistry
Только в 32-разрядной версии Windows Vista и выше позволяет
Procmon использовать перехват системных вызовов вместо
обратного вызова для мониторинга активности реестра, что дает
возможность видеть виртуальные операции реестра Microsoft
Application Virtualization (App-V, ранее Softgrid). Используется
при первом запуске Process Monitor в сеансе и только для устра-
нения неполадок в сериализованных приложениях App-V
/SaveAspaf/,
При использовании параметра /OpenLog экспортирует записан-
ный журнал в файл формата XML, CSV, или PML (определяется
расширением заданного файла,.xml,.csv или .pml)
/SaveAsl part
При использовании параметра /OpenLog экспортирует трасси-
ровку в XML вместе со стеком (см. выше)
/SaveAs2 part
При использовании параметра /OpenLog экспортирует трасси-
ровку в XML вместе со стеком и символами (см. выше)
Ниже приведены примеры использования данных параметров:
• Открытие 32-разрядного файла журнала в 64-разрядной версии Win-
dows:
Procmon.exe /Run32 /OpenLog c:\pmlLogs\logfile.pml
• Вот более сложный пример сценария, регистрирующего операции записи
программой Notepad.exe в файле C:\notepad.pml:
set PMExe=»C:\Program Files\Sysinternals\Procmon.exe» set PMHide= /AcceptEula /Quiet /
Minimized set PMCfg= /LoadConfig C:\TEMP\PmCfg.pmc set PMFile= /BackingFile C:\notepad.pml
start «» %PMExe% %PMHide% %PMCfg% %PMFile%
%PMExe% /WaitForIdle
SIN_ch_04.indd 131
27.12.2011 14:16:29