Existe uma coisa chamada PPID (Parent Process ID), mas é relativamente "complicado" encontrar no Windows porque não é uma coluna mostrada no Gerenciador de Tarefas, e eu nem estou vendo isso para colunas no Process Explorer.
Dois métodos para fazer isso
Method 1 - WMIC
Method 2 - Process Monitor
Ambos são métodos bem rápidos
Método 1 - WMIC
Vou usar uma resposta de como encontrar o PPID usando o WMIC daqui link
E isso torna o resto disso bastante simples
C:\blah>wmic process get processid,parentprocessid
ParentProcessId ProcessId
0 0
0 4
4 320
392 572
320 656
648 664
392 688
688 740
688 756
688 764
... ...
O resto é bastante óbvio.
Então, vamos supor que você queira encontrar quem lançou o calc.exe
e calc.exe você vê do gerenciador de tarefas, é PID 7384
C:\blah>wmic process get processid,parentprocessid | find "7384" 10896 7384 PPID PID C:\crp>
O WMIC mostra as associações entre o PID e o PPID. Então procure 10896 no Gerenciador de Tarefas, (10896 é o PPID listado para o PID do calc.exe de 7384), e no gerenciador de tarefas eu vejo que o processo com PID de 10896 é o cmd.exe que é o processo que usei para iniciar o calc. exe E, de fato, cmd.exe é o processo pai que gerou o calc.exe
Método 2 - Monitor de processo
Você pode fazer isso no monitor de processo sysinternals.
clique em filter..filter na barra de menu e adicione um filtro filtrando o nome ou caminho ou PID do processo, por exemplo nome do processo calc.exe ou um filtro para o caminho e digite c: \ windows \ system32 \ calc.exe
Por acaso usei o nome do processo
FaçaoOK..earquivo..captureseaindanãoestivercapturando.
Cliqueduasvezesnoprocessocertoparaquenestecasocarregueaimagemcalc.exeeumacaixadediálogodepropriedadessejaexibida,cliquenaguiacorreta,'process'evocêveráoPIDeoPPID(iddoprocessopai).
E, claro, quando você conhece o PPID como você faria agora, você pode consultá-lo no gerenciador de tarefas para saber qual processo o gerou