Есть ли способ узнать, какой процесс запустил другой процесс даже после завершения родительского процесса?
Я пытался найти что-то в 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.