Как определить завершенный процесс Windows, если у меня все еще есть свой PID?

14

Фон: В середине моей работы неожиданно появилось лицензионное соглашение на установку «Microsoft Mouse and Keyboard Center». Я хотел бы понять, какой процесс запустил установку, но, используя Process Explorer, я увидел, что он исчез, и смог найти только его PID (см. Скриншот).

Вопрос:

Если вы используете Process Explorer , вы, возможно, знаете ситуацию, когда родительский процесс процесса больше не существует, и вы можете видеть только его PID:

введите описание изображения здесь

Существуют ли журналы Windows, содержащие связь PID с запущенным процессом? чтобы я мог узнать, какой процесс выполнялся под данным PID?

Предпочтительно меня интересуют сценарии, где я этого не ожидал, поэтому я не использовал Process Monitor для захвата событий в системе.

miroxlav
источник

Ответы:

11

Существуют ли журналы Windows, содержащие связь PID с запущенным процессом?

По умолчанию таких логов нет. Однако вы можете включить отслеживание процессов в журнале событий безопасности Windows.

Примечания:


Как использовать события отслеживания процессов в журнале безопасности Windows

В Windows 2003 / XP вы получаете эти события, просто включив политику аудита отслеживания процессов.

В Windows 7/2008 + необходимо включить создание процесса аудита и, при необходимости, подкатегории завершения процесса аудита, которые вы найдете в разделе «Расширенная настройка политики аудита» в объектах групповой политики.

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

введите описание изображения здесь

Источник Как использовать события отслеживания процессов в журнале безопасности Windows


Как включить создание процесса аудита

  1. Запустите gpedit.msc

  2. Выберите «Настройки Windows»> «Настройки безопасности»> «Локальные политики»> «Политика аудита»

    введите описание изображения здесь

  3. Щелкните правой кнопкой мыши «Аудит отслеживания процессов» и выберите «Свойства»

  4. Проверьте «Успех» и нажмите «ОК»

    введите описание изображения здесь


Что такое отслеживание процессов аудита

Этот параметр безопасности определяет, будет ли ОС проверять связанные с процессом события, такие как создание процесса, завершение процесса, дублирование обработки и косвенный доступ к объектам.

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

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

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

По умолчанию: без аудита

Важное замечание: Для большего контроля над политиками аудита используйте параметры в узле Конфигурация расширенной политики аудита. Дополнительные сведения о настройке расширенной политики аудита см. По адресу http://go.microsoft.com/fwlink/?LinkId=140969 .

ДэвидПостилл
источник
Дэйв, может быть, вы могли бы использовать подход "самый быстрый пистолет на западе" . Пока вы писали свой длинный и сложный ответ, я выполнил шаги в другом ответе (так же, как вы добавили позже) и собирался принять его. Так что теперь у меня есть дилемма, на которую ответить, чтобы принять ... :)
miroxlav
1
Я предпочел бы иметь лучший ответ, чем первый ответ;) Если они одно и то же, то это бонус. Я действительно сообщил вам (в уже исправленном комментарии), что готовлю свой ответ. И я использую медленное подключение к интернету через мой мобильный телефон: /
DavidPostill
Ах да, ты сделал. ОТО, возможно, не стесняйтесь написать «вы можете включить ведение журнала аудита в локальных политиках», опубликовать и продолжить создание ответа с образовательной ценностью. Иногда даже небольшая подсказка может лучше помочь мне (ОП), чем ждать 60 минут для получения отличного ответа :) Я имею в виду, я знаю, где находятся местные политики, мне просто нужна была небольшая подсказка.
Miroxlav
@DavidPostill: Было бы неплохо, если бы вы упомянули, как часто эти журналы очищаются (или как часто они должны очищаться вручную), потому что я думаю, что они могут быть довольно длинными ...
user541686
1
@Mehrdad Журналы событий, при необходимости, могут быть удалены из командной строки с помощью wevtutil. Это проще, чем использовать графический интерфейс просмотра событий.
Дэвид Постилл
3

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

В программе «Локальная политика безопасности» (введите secpol.mscс экрана запуска, если у вас возникли проблемы с ее поиском), перейдите в «Настройки безопасности -> Локальные политики -> Политика аудита», затем включите «Отслеживание процесса аудита» для «Успех».

введите описание изображения здесь

После того, как вы это сделаете, перейдите к средству просмотра событий и проверьте журнал событий «Secruity», там вы увидите записи «Audit Success» для каждого запуска или завершения процесса.

Процесс завершен.

Предмет:
    Идентификатор безопасности: SYSTEM
    Имя учетной записи: SCOTT-PC $
    Домен аккаунта: WORKGROUP
    Идентификатор входа: 0x3E7

Обрабатывать информацию:
    Идентификатор процесса: 0x1338
    Имя процесса: C: \ Windows \ System32 \ согласия.exe
    Статус выхода: 0x0

Вам нужно будет преобразовать искомый идентификатор процесса из десятичного числа в шестнадцатеричное (3336 становится 0xD08). Самый простой способ конвертировать - это открыть калькулятор Windows, перейти в режим «Программист», ввести число в режиме «dec», затем нажать в режиме «hex». Отображаемое число будет преобразовано в гекс для вас.

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

Если это одноразовая вещь и вы не хотите постоянно регистрировать свои процессы, я бы предложил использовать Microsoft Process Monitor ( https://technet.microsoft.com/en-us/Library/bb896645.aspx ). Он должен быть запущен до появления популярного, но даже после того, как родительский процесс мертв, он соберет всю информацию, которую вы искали.

mrTomahawk
источник