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

Windows: узнать, какой процесс породил другой процесс

У меня ситуация с процессами немного похожа на приведенную ниже. У нас есть 2 исполняемых файла, foo.exe и bar.exe. bar.exe всегда запускается foo.exe. Я хочу знать, как узнать, какой файл bar.exe порожден каким файлом foo.exe. Это, наверное, очень просто, но не получается.

Name      Pid

foo.exe   1
foo.exe   2
foo.exe   3

bar.exe   4
bar.exe   5
bar.exe   6

Рады решениям dos или powershell.

Ты можешь использовать wmic process get Caption,ParentProcessId,ProcessId для списка в командной строке. Или используйте Обозреватель процессов из SysInternals Suite для опции GUI.

Чтобы продолжить ответ от @Lenniey, ниже представлен хорошо отформатированный список процессов с родительским идентификатором и условием фильтрации:

$IsSee = {$_.CommandLine -match 'd:\\' -or $_.Path -match 'd:\\'};
Get-WmiObject win32_process | where -FilterScript $IsSee | 
    select @{l='PID';e={$_.ProcessId}},@{l='PPID';e={$_.ParentProcessId}},
      @{l='#Thrd';e={$_.ThreadCount}},
      @{l='vmGB';e={[math]::round($_.VM/1gb,2)}},CommandLine | 
    Format-Table -wrap -auto

(в данном случае команды, относящиеся к диску D :)