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

How to distinguish between different processes using the same name?

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

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

并获取一个列表,显示启动进程的文件夹。不幸的是,这个 returns 的路径是空的。 所以我尝试了一些其他的属性,这些属性可能是独一无二的,但返回时都是空的。 我究竟做错了什么?或者我可以做点别的吗?

我正在使用 windows 8 顺便说一句。

你会用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 return 有什么吗?

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" ...

如果进程不属于你,那么你需要运行它作为admin/elevated。

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