Windows – How to find parent process for child process if parent process is terminated

processwindowswindows-server-2008-r2

Is there a way to find out which process started a other process even after the parent process is terminated?

I tried to find something in the Win32_Process class via PowerShell but I did not find anything relevant.

Best Answer

The Win32_Process WMI class does tell you the ID of the process that spawned the child process. However, the ParentProcessID is not part of the default property set; you have to specifically ask for it.

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

It's worth noting however that grandparent process IDs are not tracked.