Поделиться через


Устранение неполадок, при которых приложения не запускаются с помощью монитора процессов

В этой статье описывается, как установить средство монитора процессов для устранения проблемы, в которой не удается запустить современные приложения, папки "Входящие" и "Приложения Microsoft Store".

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

Сбор событий

Чтобы записать трассировку монитора процессов, запустите ее с повышенными разрешениями (запуск от имени администратора).

Примечание.

Убедитесь, что вы используете версию монитора процессов, соответствующую платформе (Procmon.exe для систем x86, Procmon64.exe для систем X64 и Procmon64a.exe для ARM).

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

Снимок экрана: окно фильтра монитора процессов с кнопкой

По умолчанию запись должна запускаться автоматически. Однако вы можете убедиться, что он запущен, выбрав следующий значок:

Снимок экрана: окно монитора процессов с выбранным значком, чтобы проверить, запущено ли средство.

Кроме того, можно запустить запись, нажав клавиши CTRL + E или выбрав команду "Записать события" в меню "Файл". События, записанные в строке состояния, отображаются следующим образом:

Снимок экрана: записанные события, отображаемые в строке состояния.

Кроме того, если графический пользовательский интерфейс (GUI) не является параметром или система доступна удаленно только с помощью доступа к консоли, можно отслеживать проблему с помощью Windows PowerShell или командной строки. Например:

C:\ProcessMonitor>procmon64.exe -accepteula -backingfile C:\ProcessMonitor\Recording.pml -quiet -minimized

Доступны другие параметры, включая фильтрацию и настройку максимального размера файла. Дополнительные сведения см. в разделе "Монитор процессов".

Снимок экрана: аргументы командной строки использования монитора процессов.

Чтобы завершить и сохранить трассировку, можно использовать следующую команду:

C:\ProcessMonitor>procmon64.exe -terminate -quiet

Кроме того, можно удаленно запустить монитор процессов с помощью PowerShell или средства PsExec. Например:

C:\PSTools>psexec.exe -sd \\<Computer Name> C:\ProcessMonitor\procmon64.exe -accepteula -backingfile C:\ProcessMonitor\Recording.pml -quiet -minimized

Чтобы остановить запись, можно использовать следующую команду:

C:\PSTools>psexec.exe -sd \\<Computer Name> C:\ProcessMonitor\procmon64.exe -terminate -quiet

Хранение и сохранение событий

Существует несколько способов хранения и сохранения событий. В меню "Файл" можно выбрать "Резервное копирование файлов". Затем можно увидеть два метода хранения событий:

  • Использование виртуальной памяти
  • Использование файла с именем

Снимок экрана: окно

Использование виртуальной памяти

Этот метод использует память системы для хранения файла, пока он не будет сохранен пользователем вручную.

Примечание.

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

Снимок экрана: события, поддерживаемые виртуальной памятью, отображаемой в строке состояния.

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

Снимок экрана: значок сохранения и окно

Убедитесь, что выбраны все события и формат задан как собственный формат монитора процессов (PML). Если запись не содержит все события, то для анализа могут быть доступны только отображаемые или выделенные события.

Поддерживается файлом

Этот метод использует файл для хранения записи и не требует сохранения файла вручную перед выходом из монитора процессов.

Примечание.

Если максимальный размер файла не определен, выполнение монитора процессов слишком долго, поддерживаемое файлом, может привести к тому, что монитор процессов будет использовать все доступное дисковое пространство системы, что может привести к остановке ответа системы.

Снимок экрана: события, поддерживаемые файлом, отображаемым в строке состояния.

После установки монитора процессов и запуска записи необходимо воспроизвести проблему.

Пример устранения неполадок

Рассмотрим эту проблему как пример; у вас есть приложение Калькулятора, которое не работает. Сначала запустите запись монитора процессов с любым из описанных выше методов. Затем воспроизвести проблему, пытаясь запустить приложение. После воспроизведения проблемы остановите запись монитора процессов и сохраните данные.

Чтобы проанализировать записанную трассировку монитора процессов, откройте ее с помощью монитора процессов. Выберите дерево процессов в меню, чтобы узнать, запускается ли приложение во время записи.

Выберите процесс калькулятора:

Снимок экрана: окно дерева процессов с выбранным процессом калькулятора.

Чтобы сосредоточиться на процессе, щелкните правой кнопкой мыши имя приложения и выберите " Добавить процесс" для фильтра "Включить".

Снимок экрана: щелкните правой кнопкой мыши процесс калькулятора и показывает процесс добавления фильтра.

Аналогичным образом можно добавить фильтр вручную для идентификатора процесса.

Снимок экрана: окно фильтра монитора процессов с определенным идентификатором процесса.

Закройте представление дерева процессов или нажмите кнопку "ОК" в окне фильтра монитора процессов, чтобы просмотреть отфильтрованные захваченные строки, содержащие процесс. В этом примере начинается процесс Calculator.exe .

Снимок экрана: окно монитора процессов с выбранным процессом калькулятора.

Затем перейдите к концу записи процесса и найдите группу событий выхода потока прямо перед событием завершения процесса.

Снимок экрана: окно монитора процессов с выбранным процессом калькулятора и событиями выхода потока выше.

Вы также можете просмотреть событие создания процесса для WerFault.exe. На этом этапе приложение уже достигло неустранимого условия и назвало обработчик ошибок по умолчанию.

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

Снимок экрана: окно Просмотр событий с событием ошибки приложения.

Снимок экрана: окно Просмотр событий с событием 5961.

Вы можете начать с этой строки, чтобы узнать, можно ли обнаружить события "Результаты отказано в доступе".

Снимок экрана: окно монитора процессов с выбранным процессом калькулятора отказано в доступе.

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

\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

В этом примере ВСЕ ПАКЕТЫ ПРИЛОЖЕНИй отсутствуют разрешения на чтение из папок пользовательской оболочки.

Снимок экрана: разрешения для папок пользовательской оболочки со всеми выбранными пакетами приложений.

Эту операцию также можно выполнить с помощью PowerShell или командной строки.

Для рабочей системы:

Снимок экрана: командлет PowerShell для разрешения папок пользовательской оболочки для рабочей системы.

Для нерабочей системы:

Снимок экрана: командлет PowerShell для разрешения папок пользовательской оболочки для нерабочей системы.

Если вы не заметили никаких проблем с разрешениями, которые могут быть подозрительными, вы всегда можете проверить всю трассировку для любых подозрительных блоков разрешений. Сначала удалите фильтр для процесса калькулятора, выбрав "Сбросить фильтр" в меню "Фильтр". Затем в меню "Сервис" выберите параметр "Число вхождения". Вы можете выбрать результат в раскрывающемся меню, а затем выбрать count.

После завершения фильтрации можно дважды щелкнуть строку "Отказано в доступе", чтобы просмотреть отфильтрованные события:

Снимок экрана: окно

Снимок экрана: процесс калькулятора, за которым следует некоторые процессы, отказано в доступе.

Если вы работаете с списком, не все результаты "Отказано в доступе", это приведет к сбою кода.

Как правило, все запросы "Все доступ" часто отказываются, поэтому вы можете исключить их из своих расследований. Это можно сделать автоматически, отфильтровав события, содержащие требуемый доступ: все доступ следующим образом:

Снимок экрана: окно фильтра монитора процессов с фильтром

В этом примере результат выглядит следующим образом:

Снимок экрана: окно монитора процессов с выбранным процессом StartMenuExperienceHost и калькулятором.

Снимок экрана: окно монитора процессов с выбранным процессом StartMenuExperienceHost.

Добавление соответствующего разрешения для "Все пакеты приложений" разрешает обе проблемы одновременно для обоих приложений.

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

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

Если затронут только один компьютер, восстановите или сбросите компьютер. Если затрагивается только один пользователь, повторно создайте профиль пользователя.