Назад | Перейти на главную страницу

Как найти родительский процесс для дочернего процесса, если родительский процесс завершен

Есть ли способ узнать, какой процесс запустил другой процесс даже после завершения родительского процесса?

Я пытался найти что-то в Win32_Process class через PowerShell, но я не нашел ничего подходящего.

В Win32_Process WMI класс делает сообщить вам идентификатор процесса, породившего дочерний процесс. Однако ParentProcessID не является частью набора свойств по умолчанию; вы должны специально попросить об этом.

PS C:\> Get-WmiObject Win32_Process | Select ProcessID, ParentProcessID | FT -Auto

ProcessID ParentProcessID
--------- ---------------
        0               0
        4               0
      364               4
      520             452
      576             452
      592             584
      632             576
      640             576
      724             632
      776             632
      840             584
      932             632
      956             632
     1020             632
      324             840
      508             632
      436             632
     1120             632
     1276             632

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

Чтобы получить подробную информацию о любом процессе, выполните следующую команду:

C:\>wmic process list /format:list > process.txt

А потом в process.txt мы можем определить местонахождение бесхозных процессов с помощью ProcessID а также получить свои ParentProcessID.