我必须使用不同的路径运行使用相同可执行文件的进程。因此,如果您在Get进程上使用-getname-它们将显示为相同。当我使用FileVersionInfo属性时,可以看到哪个程序。我必须编写一个脚本来杀死“ DOG”进程。
PS F:\> Get-Process Casper -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
5.5.2.0 5.5.2.33678 C:\Program Files (x86)\foo\DOG III\Casper.exe
5.5.4.1 5.5.4.4163 C:\Program Files\foo\CATS NG (PROD)\Casper.exe
如何添加每个进程的pid,以便可以隔离它并在需要时将其杀死。
Get-Process Casper | Select Id
Id
--
16894
19456
答案 0 :(得分:2)
您可以运行以下命令:
Get-Process Casper | Select ProductVersion,FileVersion,Path,Id
如果运行Get-Process Casper | Get-Member
,则可以看到System.Diagnostics.Process
对象类型可用的大多数属性。输出的底部包含一些您可以访问的ScriptProperty
类型。使用-FileVersionInfo
开关时会显示Path,ProductVersion和FileVersion。
如果您不喜欢Path
属性名称,则可以在select语句中对其重命名:
Get-Process Casper | Select ProductVersion,FileVersion,@{n="FileName";e={$_.Path}},Id
您可以使用where()
方法通过路径名来缩小搜索范围:
(Get-Process Casper).where({$_.Path -like "*DOG III*"}) |
Select ProductVersion,FileVersion,@{n="FileName";e={$_.Path}},Id
如果您确实只需要Id
即可传送到另一个程序,则可以使用以下命令:
(Get-Process Casper).where({$_.Path -like "*DOG III*"}).Id | Some-Command