У меня ситуация с процессами немного похожа на приведенную ниже. У нас есть 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 :)