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

388 Часть
III
Поиск и устранение сбоев: загадочные случаи
Он проверил журнал приложения резервного копирования, в котором поя-
вилось сообщение о неудаче чтения DLL-файла nnotes.dll (рис. 16-7). Ему по-
казалось странным, что путь к указанному DLL-файлу находился в папке,
принадлежавшей совсем другому приложению.
Рис. 16-7. Сообщение о неудаче при чтении nnotes.dll в журнале приложения резервного
копирования
Системный администратор запустил Procmon и попытался начать ре-
зервное копирование. Он назначил фильтр по имени приложения резерв-
ного копирования и его дочерних процессов, он нажал Ctrl+F, чтобы найти
строку «\nnotes.dll» в трассировке. Нашлось несколько вызовов QueryOpen
(рис. 16-8), пытающихся открыть файл в различных папках, каждый раз
неудачно. При этом отображалась надпись NAME NOT FOUND. Наконец,
файл был найден в C:\Program Files\BMC Software\MasterCell\server\bin
(по словам системного администратора, некоторые из этих папок находи-
лись в переменной окружения PATH, а остальные были добавлены прило-
жением резервного копирования в период выполнения).
Рис. 16-8. Поиск файла nnotes.dll
Вскоре после открытия той копии nnotes.dll процесс спроецировал DLL-
файл в свое виртуальное адресное пространство. Это действие сопровожда-
ется событием Loadlmage (см. первую строку на рис. 16-9). Почему же не
удалось загрузить DLL-файл? Как видно из рис. 16-9, вскоре после загрузки
nnotes.dll процесс начал поиск nxmlproc.dll, просматривая все пути из пере-
менной PATH по порядку, однако искомый файл найден не был.
Системный администратор запустил утилиту Dumpbin из Microsoft
Visual Studio, для просмотра зависимостей DLL и понял, что nnotes.dll за-
висит от nxmlproc.dll. Поэтому сразу после загрузки nnotes.dll начинался по-
иск nxmlproc.dll, а отсутствие nxmlproc.dll мешало загрузить nnotes.dll.
SIN_ch_16.indd 388
27.12.2011 14:52:42

Сообщения об ошибках
Глава 16 389
Рис. 16-9. Приложение резервного копирования успешно загружает nnotes.dll, но не может
найти nxmlproc.dll
После nxmlproc.dll искали на дисках C и D, в конце концов этот файл об-
наружился в папке D:\Domino (рис. 16-10), которую при поиске не просма-
тривали. Что интересно, копия nnotes.dll лежала в той же папке (рис. 16-11).
Администратор вставил «D:\Domino» в переменную PATH сразу после стан-
дартных путей Windows по умолчанию, перезагрузил компьютер и резерв-
ное копирование заработало как часы. Так была решена эта проблема.
Рис. 16-10. Поиск nxmlproc.dll на дисках C и D
Рис. 16-11. Поиск
nnotes.dll
SIN_ch_16.indd 389
27.12.2011 14:52:42

390 Часть
III
Поиск и устранение сбоев: загадочные случаи
Сбой воспроизведения в медиаплеере
Один из пользователей пытался использовать функцию «Воспроизвести
на» (Play To) в Windows 7 для проигрывания песни в медиаплеере и получил
непонятное сообщение об ошибке (рис.16-12). Тем не менее, другие песни из
медиабиблиотеки этого пользователя проигрывались без проблем.
Рис. 16-12. Ошибка с сообщением «Error occurred on your device»
После этого пользователь вновь столкнулся с ошибкой, на этот раз в про-
цессе мониторинга активности системы с помощью программы Procmon.
После установки фильтра по файлу песни трассировка показала успешные
операции с Wmplayer.exe и единственный результат с «ACCESS DENIED»
для программы Wmpnetwk.exe. (рис. 16-13).
Рис. 16-13. Успешные операции Wmplayer.exe и неудачная операция Wmpnetk.exe
Он также заметил, что песни, которые успешно проигрывались, находи-
лись в папке по умолчанию Music, а песня, которую не удалось воспроизве-
сти, — в папке Documents. Сравнив их разрешения, он обнаружил, что пес-
ни, которые успешно воспроизводились, давали разрешение на чтение и вы-
полнение службе WMPNetworkSvc
1
. Он добавил это разрешение для файла,
который не удавалось воспроизвести (рис.16-14), и песня стала звучать без
сбоев. Проблема была решена.
1
В Windows Vista и выше службам присвоены идентификаторы защиты (SID), благодаря чему
появилась возможность предоставлять или запрещать доступ отдельным службам.
SIN_ch_16.indd 390
27.12.2011 14:52:42

Сообщения об ошибках
Глава 16 391
Рис. 16-14. Предоставление разрешения на доступ службе WMPNetworkSvc
Крах утилиты Proksi
Один из пользователей работал с утилитой Proksi более года, а потом утилита
стала завершаться с крахом. Для диагностики он запустил Procmon, а затем —
проблемную утилиту. После краха трассировку прекратили. Просканировав
результаты (рис. 16-15), он обнаружил результат «ACCESS DENIED» при по-
пытке открыть файл со стандартными разрешениями на запись.
Рис. 16-15. Procmon выводит сообщение «ACCESS DENIED», затем отладчик
обрабатывает крах
Пользователь открыл вкладку Security в окне свойств файла в Провод-
нике, однако не обнаружил никаких ошибок. Затем он заметил, что на
вкладке General установлен флажок Read-Only (рис.16-16). Он снял его, и
программа стала работать без сбоев.
SIN_ch_16.indd 391
27.12.2011 14:52:43

392 Часть
III
Поиск и устранение сбоев: загадочные случаи
Рис. 16-16. Отказ в доступе в результате установки флажка Read-Only
Сбой при установке
Один из клиентов моего соавтора работал со сканерами «Kodak», к кото-
рым прилагались компакт-диски с необходимым программным обеспече-
нием. Когда администратор вставил компакт-диск в дисковод, автозапуск
Windows Vista сработал некорректно: открылось окно автозапуска, однако
не появились параметры установки ПО. Администратор открыл папку в
Проводнике и запустил файл autorun.exe, чтобы начать установку вручную.
Согласившись на повышении привилегий UAC, администратор увидел со-
общение о странной ошибке, как будто программа установки не смогла най-
ти нужную версию ОС (рис. 16-17).
Рис. 16-17. Сообщение об ошибке при установке приложения
Поиск и устранение сбоя
Аарон понял, что автор программы установки считал, что Windows XP на-
столько совершенна, что Microsoft не будет выпускать других версий, поэто-
му предусматривать их наличие при проверке не стоит. Он включил режим
совместимости с Windows XP, который, ко всему прочему, сообщает про-
грамме ложную информацию об операционной системе, и попробовал уста-
новить программу снова с тем же результатом. Кстати, установка прекрасно
выполнялась в свежих копиях Windows Vista, к которым не применялась
корпоративная политика.
SIN_ch_16.indd 392
27.12.2011 14:52:43