如何区分使用相同名称的不同进程?

所以我正在运行我的程序的几个实例,我必须能够从PowerShell中很好地区分实例。 由于每个实例安装在一个单独的文件夹我认为我可以使用:

get-process -Name MyProgram* | Select-Object name, path 

并获得一个列表,显示从哪个文件夹开始进程。 不幸的是,这返回path为空。 所以我尝试了一堆可能是独一无二的其他属性,但是它们都是空的。 我究竟做错了什么? 或者我可以做别的事情?

我使用Windows 8 btw。

您必须使用提升的权限运行才能查看您不是所有者的进程的路径信息。

你可以使用PID吗? 或者你的程序是否启动子进程。 Path为我工作,如:

 Get-Process iexplore | Select-Object ID, Name, Path Id Name Path -- ---- ---- 10792 iexplore C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE 13928 iexplore C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE 17144 iexplore C:\Program Files\Internet Explorer\iexplore.exe 17772 iexplore C:\Program Files\Internet Explorer\IEXPLORE.EXE 20896 iexplore C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE 

ExecutablePathCommandLine是否返回任何内容?

 Get-WmiObject -Class Win32_Process -Filter "Name LIKE 'iexplore%'" | Select-Object ProcessID, Name, ExecutablePath, Commandline ProcessID Name ExecutablePath Commandline --------- ---- -------------- ----------- 17144 iexplore.exe C:\Program Files\Internet Explorer\iexplore.exe "C:\Program Files\Internet Explorer\iexplore.exe" ... 32016 iexplore.exe C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE "C:\Program Files (x86)\Internet Explorer\IEXPLORE... 36744 iexplore.exe C:\Program Files\Internet Explorer\IEXPLORE.EXE "C:\Program Files\Internet Explorer\IEXPLORE.EXE" ... 

如果进程不属于你,那么你需要运行它作为管理员/提升。