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

ВУЗ: Не указан

Категория: Книга

Дисциплина: Операционные системы

Добавлен: 29.10.2018

Просмотров: 33010

Скачиваний: 742

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

122  Часть 

II   

Работа с утилитами

фильтры могут скрывать все события процесса. Но даже процесс, не выпол-
нивший никакого кода во время трассировки, может отображаться в дереве 
благодаря событиям трассировки (если последние не скрыты фильтром).

Запись и загрузка трассировки Procmon

«Пожалуйста, пришлите журнал Procmon» — это, пожалуй, самая частая 
просьба  специалистов службы техподдержки. Подробный журнал активно-
сти ОС удаленного компьютера позволяет устранять неполадки, не мучаясь 
с брандмауэрами и часовыми поясами. Без этого решать проблемы было бы 
гораздо труднее. А параметры командной строки (о них речь пойдет ниже) 
позволяют пользователям, нуждающимся в помощи, получать трассировку, 
просто запуская командный файл, не выслуживания длительных объясне-
ний процедур сохранения и прочих операций в Procmon.

Сохранение трассировок Procmon

Для сохранения трассировки Procmon нажмите Ctr+S или щелкните значок 
Save на панели инструментов, чтобы открыть диалоговое окно Save To File 
(Сохранить в файл) 
(см. рис. 4-17).

Рис. 4-17.  Диалоговое окно Save To File

Вы можете по своему усмотрению сохранять все события (независимо от 

того, отображаются они или нет), только события, отображаемые текущим 
фильтром (с событиями трассировки или без них) или же только подсвечен-
ные события.

Procmon может сохранять трассировки в одном из трех форматов. PML яв-

ляется «родным» форматом файла Procmon, который сохраняет все захвачен-
ные данные в точности, включая информацию о стеках и модулях, позволяя 
загружать их в Procmon на любом компьютере. При просмотре в системе с 
установленными средствами отладки Windows по данными PML-файла мож-
но загружать нужные символы с серверов символов (и двоичные файлы, если 
трассировка открыта на другом компьютере, подробнее cм. в главе 2).

SIN_ch_04.indd   122

27.12.2011   14:16:27


background image

Process Monitor 

Глава 4  123 

Обратите внимание: внутренний формат PML-файлов различается в 

x86- и x64-версиях Windows. Формат для x86 читается в обеих версиях, а 
журналы из 64-разрядных версий Windows — только 64-разрядными вер-
сиями (см. раздел о загрузке трассировок).

Другим вариантом является сохранение в файле формата CSV. Такие 

файлы могут импортироваться в Excel и другие приложения, предназна-
ченные для анализа данных, а также в программы для сравнения текстовых 
файлов, такие как WinDiff или fc.exe. В CSV-файлах Procmon сохраняет 
только текстовые данные из колонок, выбранных для отображения. В пер-
вой строке CSV-файла содержатся имена полей. Перед сравнением трасси-
ровок в формате CSV не забудьте удалить поля вроде Time Of Day, которые 
будут различаться всегда.

Procmon также может сохранять свои данные в формате XML для обра-

ботки в программах, поддерживающих разбор XML. Например, следующий 
сценарий Windows PowerShell разбирает трассировку Procmon в формате 
XML и выводит упорядоченный список всех уникальных путей модулей, за-
груженных из любых папок, кроме C:\Windows:

$x = [xml]$(gc logfile.xml) $x.SelectNodes(“//module”)
?{ !$_.Path.ToLower().StartsWith(“c:\windows\”) }
%{ $_.Path }
sort –Unique

Ниже представлен результат обработки этим сценарием 5-Мб XML-

файла трассировки:

C:\PROGRA~1\WI4EB4~1\wmpband.dll
C:\Program Files\Common Files\microsoft shared\ink\tiptsf.dll
C:\Program Files\Debugging Tools for Windows\DbgHelp.dll
c:\Program Files\Sysinternals\Procmon.exe
C:\Program Files\Virtual Machine Additions\mrxvpcnp.dll
C:\Program Files\Virtual Machine Additions\VMBACKUP.DLL
C:\Program Files\Virtual Machine Additions\vmsrvc.exe
C:\Program Files\Virtual Machine Additions\vmusrvc.exe
C:\Program Files\Virtual Machine Additions\vpcmap.exe
C:\Program Files\Virtual Machine Additions\VPCShExG.dll
c:\program files\windows defender\MpClient.dll
C:\Program Files\Windows Defender\MpRtMon.DLL
c:\program files\windows defender\mprtplug.dll
c:\program files\windows defender\mpsvc.dll
C:\Program Files\Windows Defender\MSASCui.exe
C:\Program Files\Windows Defender\MsMpRes.dll
C:\Program Files\Windows Media Player\wmpnetwk.exe
C:\Program Files\Windows Media Player\WMPNSCFG.exe
C:\Program Files\Windows Media Player\wmpnssci.dll
C:\Program Files\Windows Sidebar\sidebar.exe
C:\ProgramData\Microsoft\Windows Defender\Definition Updates\{02030721-61CF-400A-86EE-
1A0594D4B35E}\mpengine.dll

SIN_ch_04.indd   123

27.12.2011   14:16:28


background image

124  Часть 

II   

Работа с утилитами

При сохранении в XML возможно включить трассировку стеков с сим-

волами. Но имейте в виду, что эти параметры увеличат размер сохраняемого 
файла и время его сохранения. Не забывайте также, что визуализация боль-
ших XML-файлов без схемы в Internet Explorer вводит браузер в «ступор».

Загрузка трассировок Procmon

Procmon, работающий в системе с архитектурой x86, может открывать толь-
ко трассировки, записанные в системах той же архитектуры. Напротив, 
Procmon в системе с архитектурой x64 может открывать трассировки как 
из 32-, так и из 64-разрядных систем. Чтобы открыть трассировку, записан-
ную в x86, в системе x64, Procmon нужно запустить с параметром команд-
ной строки /Run32 — загрузится 32-разрядная версия Procmon. Учтите, что 
Procmon, запущенный в 32-разрядном режиме в 64-системе, не сможет за-
писывать события. Если Procmon уже работает, откройте диалоговое окно 
Open File (Открыть файл), щелкнув значок Open (Открыть) на панели ин-
струментов. Можно открыть файл журнала с помощью параметра команд-
ной строки /OpenLog, как показано ниже:
•  для загрузки трассировок из x86 в x64:

procmon.exe /run32 /openlog logfile.pml

•  для загрузки на другом компьютере:

procmon.exe /openlog logfile.pml

При каждом запуске c параметром /OpenLog Procmon связывает 

.PML-файлы с программой Procmon. Следовательно, после первого запус-
ка Procmon можно открывать его журналы просто двойным щелчком в 
Проводнике. То же происходит при запуске Procmon с параметром /Run32
Параметр  /Run32  будет удален из файловой ассоциации, если запустить 
Procmon без него.

Procmon не требует прав администратора для загрузки трассировки и не 

отправляет запросы на повышение прав в Windows Vista и выше при запуске 
с параметром /OpenLog. Однако для записи событий понадобится переза-
пустить Procmon с правами администратора.

Рис. 4-18.  Диалоговое окно System Details

Файл журнала трассировки содержит информацию о системе, в которой 

были собраны данные, в том числе, имя компьютера, версию операционной 

SIN_ch_04.indd   124

27.12.2011   14:16:28


background image

Process Monitor 

Глава 4  125 

системы, разрядность системы (32 или 64), корневой каталог системы, чис-
ло процессоров и объем ОЗУ. Все это можно увидеть, открыв окно System 
Details (Подробности системы)
 (рис. 4-18) меню Tools (Сервис).

Просматривать символы в трассировке стека на компьютере, на котором 

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

Мониторинг до входа и после выхода из системы

До сего момента предполагалось, что Procmon запускается в интерактивном 
сеансе, однако Procmon поддерживает и мониторинг активности системы 
без входа в нее и после выхода пользователей из системы.

Ведение журнала загрузки

Можно настроить Procmon так, чтобы он регистрировал активность систе-
мы с самого начала процесса загрузки. Эта функция понадобится для диа-
гностики неполадок, возникающих перед, во время или до входа пользовате-
ля. Примером могут быть сбои при загрузке и запуске драйверов устройств, 
автоматически запускаемых служб, собственно входе или инициализации 
оболочки. Кроме того, мониторинг загрузки позволяет диагностировать не-
поладки при выходе пользователя из системы и выключении компьютера.

Ведение журнала загрузки — это единственный режим Procmon, допу-

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

Если установить флажок Enable Boot Logging (Включить журнал за-

грузки) в меню Options, Procmon настраивает свой драйвер так, что при сле-
дующем запуске системы Procmon загружается в самом начале загрузке до 
большинства других драйверов. Драйвер Procmon регистрирует активность 
системы в файле %windir%\Procmon.PMB, продолжит регистрировать ее 
далее и до выключения или до тех пор, пока вы снова не запустите Procmon 
вручную. Таким образом, если вы не запустите Procmon вручную после за-
грузки, то сможете записать трассировку всего цикла, от загрузки системы 
до выключения ПК. В этом случае драйвер Procmon остается загруженным 
до выключения компьютера.

После загрузки вместе с системой драйвер Procmon снова становится 

драйвером, загружаемым по требованию. Таким образом, параметр Enable 
Boot Logging 
остается включенным только на одну загрузку. Активировать 
мониторинг следующей загрузки вам придется вручную, и так каждый раз.

При запуске Procmon проверяет наличие сгенерированного, но не сохра-

ненного журнала загрузки. Если Procmon найдет его, то спросит, нужно ли 
сохранить его, и, если да, то где (рис. 4-19). После этого Procmon открыва-

SIN_ch_04.indd   125

27.12.2011   14:16:28


background image

126  Часть 

II   

Работа с утилитами

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

Рис. 4-19.  Запрос сохранения трассировки Procmon

Просматривая активность системы во время загрузки, помните, что в на-

чале загрузки работает только процесс System, а его активность фильтру-
ется по умолчанию. Для просмотра активности процесса System выберите 
Advanced Output в меню Filter. Обратите внимание, что мониторинг собы-
тий сети зависит от параметра Event Tracing for Windows (ETW) и недо-
ступен в журналах загрузки. Кроме того, события трассировки процессов и 
потоков не записываются в журнал загрузки. Наконец, Procmon не включает 
трассировку загрузки в безопасном режиме.

Если включение трассировки загрузки вызывает сбой, отключите ее, вы-

брав параметр Последняя успешная загрузка (Last Known Good) в меню 
вариантов загрузки Windows. Для выбора данного параметра нажмите F8 во 
время запуска Windows.

Продолжение работы Procmon после выхода из системы

Включение трассировки загрузки — единственная возможность вести мони-
торинг с помощью Procmon и при завершении работы. Если требуется запи-
сать события во время или после выхода пользователя из системы, но полной 
трассировки до выключения ПК не требуется, также используйте трассировку 
загрузки. Тем не менее, помимо требуемых событий после выхода, в журнале 
окажутся все данные с момента запуска системы, т.е. вы получите трассиров-
ку с большим избытком информации. Другой вариант — запустить Procmon 
так, чтобы он продолжал работать и после выхода пользователя из системы.

Одним из способов мониторинга выхода пользователей из системы явля-

ется использование служб терминалов с помощью функций Быстрого пере-
ключения пользователей (Fast User Switching)
 или Удаленного рабочего 
стола (Remote Desktop)
. Когда пользователь уже вошел в систему, нач-
ните новый сеанс под другой записью пользователя и запустите Procmon. 
Вернитесь в сеанс первого пользователя и выйдите из системы. Вернитесь 
ко второму сеансу и прекратите запись событий. Установите фильтр на атри-
бут Session (Сеанс), отображающий только события, которые произошли в 
сеансе первого пользователя.

Другой эффективный способ мониторинга активности после выхода 

из системы — использование PsExec с параметром -s для запуска Procmon 

SIN_ch_04.indd   126

27.12.2011   14:16:28