Вы можете сделать это с помощью WMI.
Нам нужно создать WQL-запрос для процессов, которые называются httpd.exe, и мы хотим получить путь, по которому был запущен исполняемый файл.
Эта информация хранится в классе Win32_Process , и документация показывает нам, какие биты информации нам нужно предоставить (например, Name) и какие биты запрашивать (например, ExecutablePath).
Мы можем использовать wmic.exe для запроса WMI следующим образом:
wmic process WHERE name="httpd.exe" GET ExecutablePath
Это должно вывести что-то похожее на:
C:\Apps\httpd.exe
C:\Apps\httpd.exe
C:\Apps\beta-test\httpd.exe
Возможно, вы захотите получить CommandLine вместо ExecutablePath, поскольку это также скажет вам, с какими аргументами командной строки запущен процесс, и это может иметь большое значение, когда вы сужаете, какие процессы что делают:
wmic process WHERE name="httpd.exe" GET CommandLine
Это должно показать вам что-то вроде:
C:\Apps\httpd.exe -config=E:\widgetsales\httpd.conf
C:\Apps\httpd.exe -config=E:\widgetservices\httpd.conf
C:\Apps\beta-test\httpd.exe -config=D:\DevStuff\httpd.conf
Мы можем сделать еще лучше, получив PID, а также командную строку:
wmic process WHERE name="httpd.exe" GET CommandLine, ProcessID
CommandLine ProcessId
C:\Apps\httpd.exe -config=E:\widgetsales\httpd.conf 51064
C:\Apps\httpd.exe -config=E:\widgetservices\httpd.conf 24716
C:\Apps\beta-test\httpd.exe -config=D:\DevStuff\httpd.conf 52728