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

Process Explorer
Глава 3 97
Табл. 3-1. Параметры командной строки
Параметр
Описание
/e
В Vista и выше требует повышения привилегий UAC при запуске
Procexp
/x
Запускает Procexp свернутым в области уведомлений («трее»)
/p:r
/p:h
/p:n
/p:l
Устанавливает приоритет процесса для Procexp, соответственно
Realtime (Реального времени), High (Высокий), Normal (Обычный)
или Low (Низкий). Если приоритет не выбран, то по умолчанию
назначается приоритет High
/s:PID
Выбирает процесс с идентификатором, заданным в десятичной
системе, например Procexp.exe /S:520
Восстановление настроек Procexp по умолчанию
Procexp хранит все свои настройки конфигурации в разделе реестра «HKEY
CURRENT USER\ Software\Sysinternals\Process Explorer». Простейший
способ восстановления всех настроек конфигурации Procexp — закрыть
программу, удалить из реестра ее раздел и снова запустить.
Клавиатурные комбинации
Применяемые в Procexp комбинации клавиш показаны в табл. 3-2.
Табл. 3-2. Клавиатурные комбинации Procexp
Комбинация
Описание
Ctrl+A
Сохранить отображаемые данные в новый файл (эквивалент
команды File | Save As)
Ctrl+C
Копировать текущую строку из главного окна или нижней
панели
Ctrl+D
Войти в режим просмотра DLL
Ctrl+F
Найти описатель или DLL
Ctrl+H
Войти в режим просмотра описателей
Ctrl+I
Отобразить окно System Information
Ctrl+L
Показать или спрятать нижнюю панель
Ctrl+M
Искать в Интернете
Ctrl+R
Запустить новый процесс (эквивалент команды File | Run)
Ctrl+S
Сохранить показанные данные в файл (эквивалент команды
File | Save)
Ctrl+T
Показать дерево процессов (эквивалент команды
View | Show Process Tree)
Ctrl+1, Ctrl+2 и т. д.
Загрузить первый, второй и т. д. набор столбцов
SIN_ch_03.indd 97
27.12.2011 14:14:34

98 Часть
II
Работа с утилитами
Табл. 3-2. (окончание)
Комбинация
Описание
Space
Приостановить или возобновить автоматическое
обновление
Del
Уничтожить выбранный процесс
Shift+Del
Уничтожить дерево процессов (выбранный процесс
с потомками)
Fl
Показать справку
F5
Обновить данные однократно
SIN_ch_03.indd 98
27.12.2011 14:14:34

Глава 4
Process Monitor
Однажды моего соавтора по книге «Windows Internals» («Внутреннее
устройство Microsoft Windows», Русская редакция, 2008) Дэвида Соломона
пригласили в одну из крупнейших фирм — производителей оборудования,
работающего под Windows. Цель — провести мастер-класс по внутренне-
му устройству Windows для разработчиков программ, функционирующих
в режиме ядра. За пару месяцев до мастер-класса представители компании
попросили Дэвида использовать на занятиях утилиту-анализатор режима
ядра, с которой работают специалисты этой фирмы на ее оборудовании.
Дэвид решил, что без труда освоит любую программу этой фирмы, к тому
же это позволит ему неплохо заработать, поэтому он согласился.
Разумеется, Дэвид откладывал знакомство с программой до последнего,
и запустил ее только в самолете, посмотрев на ноутбуке несколько серий
«Звездного пути». Как оказалось, только для того чтобы прочесть сообще-
ние об ошибке: «Данная программа не работает без устройства той_самой_
фирмы». А в ноутбуке Дэвида этого устройства просто не было, и он пришел
в полное замешательство. Неужели завтра утром ему придется признаться,
что этот казус обнаружился лишь несколько часов назад?..
Дэвид запаниковал, его прошиб холодный пот, и он попросил стюардессу
принести ему выпивки (а точнее, добавки, так как начал он уже во время
просмотра «Звездного пути»). Вернувшись спустя несколько минут, стюар-
десса заметила, что Дэвид сильно не в своей тарелке, и поинтересовалась, не
может ли она помочь ему. Приунывший Дэвид, даже не надеясь на то, что она
поймет его, кивнул на дисплей и объяснил свою проблему. Она задумалась
лишь на секунду и тут же спросила: «А Process Monitor вы пробовали?».
Мораль этой легенды такова: Process Monitor (Procmon) — это главная
утилита, которую многие пользователи используют для диагностики про-
блем с компьютером. Зачастую Procmon является последним средством для
устранения неполадок, поскольку в большинстве случаев он точно опреде-
ляет их причины. Большинство случаев, о которых рассказывают пользо-
ватели наших утилит, можно вкратце сформулировать так: «У нас была
какая-то непонятная проблема, но мы запустили Procmon и сразу нашли ее
причину».
SIN_ch_04.indd 99
27.12.2011 14:16:21

100 Часть
II
Работа с утилитами
Программа Process Explorer (см. главу 3) представляет собой прекрасный
инструмент наблюдения за процессами в системе. Она оказывает нагрузку
на ЦП, выделение памяти, DLL, загруженные процессами, используемые
системные объекты, контексты безопасности процессов и пр., и пр. Procmon
же отображает активность системы с другой точки зрения. Если Procexp, по
сути, дает статический «рентгеновский снимок» системы, то Procmon — это
«кардиограф», записывающий подробную информацию об активности рее-
стра, файлов, процессов/потоков и сети. Procexp сообщает вам, что тот или
иной процесс открыл описатель определенного файла, а Procmon показыва-
ет, какие низкоуровневые операции выполняет процесс над этим файлом,
когда он это делал, сколько времени потратил, и успешно ли они заверши-
лись, а если нет, то почему, а также отображает полный стек вызовов (трас-
сировку — путь к операции) и многое другое.
Поскольку за короткое время могут выполняться миллионы операций,
Procmon предоставляет мощные и гибкие возможности фильтрации, так что
вы быстро найдете то, что вас интересует. Procmon может работать по сце-
нарию, загружая инструкции из командных файлов с параметрами. Его вы-
вод можно сохранить в файл для дальнейшего просмотра и анализа в другой
системе. Иными словами, начинающему пользователю в другом городе не
составит особого труда записать трассировку Procmon и отправить ее вам,
чтобы вы смогли разрешить его проблему.
Утилита Procmon, созданная в 2006 году, заменила собой два исходных
инструмента Sysinternals — Filemon и Regmon. Filemon собирал информа-
цию об активности файловой системы, а Regmon — об активности реестра.
Недостатком обоих инструментов было замедление работы при сборе боль-
ших объемов информации, а их возможности фильтрации были ограниче-
ны. Кроме того, при работе фильтра во время сбора данных невозможно
было захватывать отфильтрованные данные, так как они тут же удалялись.
Procmon был написан с нуля, в нем реализовано унифицированное пред-
ставление активности файлов, реестра, процессов, потоков и других сущно-
стей. Новый инструмент способен регистрировать гораздо больше подроб-
ностей и эффективнее масштабируется, чем Filemon и Regmon, но при этом
куда меньше замедляет работу системы. Кроме того, Procmon поддерживает
журнал загрузки, безопасную фильтрацию и форматирование журнала с со-
хранением всех собранных данных, API-функции для включения в трасси-
ровку вывода отладки и многое другое. Так что если вы по привычке все еще
пользуетесь Filemon и Regmon, забудьте про них! Filemon и Regmon все еще
доступны на сайте Sysinternals для поддержки унаследованных систем, не
соответствующих минимальным требованиям для Procmon, но, поскольку
тогдашние версии Windows теперь не выпускаются, то и Filemon и Regmon
больше не обновляются.
Procmon работает с Windows XP и выше с архитектурой x86 и x64 , а так-
же с Windows Server версии 2003 и выше.
SIN_ch_04.indd 100
27.12.2011 14:16:23

Process Monitor
Глава 4 101
Начало работы с Procmon
Поскольку Procmon загружает драйвер ядра, он требует наличия прав адми-
нистратора для захвата событий, включая привилегию загружать и выгру-
жать драйверы устройств. В Windows Vista и более поздних версиях Windows
автоматически запрашивает повышение прав UAC при запуске Procmon из
процесса без повышенных привилегий, например, из Проводника. В Windows
XP или Windows Server 2003 необходимо войти в систему в качестве адми-
нистратора или использовать команду Запуск от имени с учетной записью
администратора. Более подробную информацию см. в разделе «Права адми-
нистратора» главы 2.
Примечание
Procmon не требует прав администратора, чтобы открыть существую-
щий файл журнала с помощью параметра командной строки /OpenLog.
Самый простой способ начать работу с Procmon — запустить его. Появится
окно Process Monitor, как на рис. 4-1, и сразу начнется вывод данных. Каждая
строка таблицы представляет одно низкоуровневое событие, произошедшее
в вашей системе. Можно настроить, какие столбцы и в каком порядке будут
в таблице, по умолчанию выводятся время, имя и ID процесса, операция (со
значком класса, например, операция файловой системы, реестра и т. д.), путь
к объекту, в котором выполняется операция (если он есть), ее результат и до-
полнительные сведения.
Рис. 4-1. Process
Monitor
Строка состояния показывает, помимо прочего, число захваченных собы-
тий. Это число будет быстро расти, пока вы не выключите захват событий.
Для включения или выключения захвата нажмите клавиши Ctrl + E или
щелкните значок Capture (Захват) на панели инструментов.
Для удаления всех захваченных событий нажмите клавиши Ctrk+X или
щелкните значок Clear (Очистить) на панели инструментов.
События добавляются в конец списка в хронологическом порядке. Функция
Auto Scroll (Автопрокрутка) (по умолчанию отключена) выполняет прокрутку
списка по мере добавления событий, так чтобы были видны последние добав-
ления. Для включения и выключения автопрокрутки нажмите клавиши Ctrl+A
или щелкните соответствующий значок на панели инструментов.
SIN_ch_04.indd 101
27.12.2011 14:16:23