【问题标题】:Find a Windows process based on its description, using CMD使用 CMD 根据其描述查找 Windows 进程
【发布时间】:2016-09-22 22:13:03
【问题描述】:

当我运行这个时,我得到两个结果:

tasklist /FI "imagename eq PROCESS.exe"

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
PROCESS.exe                   2760 Console                    1      8,156 K
PROCESS.exe                  20160 Console                    1      9,060 K

但我只想杀死其中一个...

如果我打开任务管理器,我可以看到我的每个进程都有不同的描述。

所以我需要做的就是按流程描述过滤。

有人可以帮忙吗?

谢谢!

【问题讨论】:

标签: windows process cmd


【解决方案1】:

使用下面的方式来根据自己的进程ID和父进程ID来区分进程:

wmic process get processid,parentprocessid,executablepath | find "PROCESS"

这样就可以找到要杀死的进程ID了。

wmic 授予对其他进程属性的访问权限。

使用wmic process get /? 找出可用的内容。

另一个可能有用的工具是 Microsoft/Sysinternals 的 PsList

【讨论】:

  • 会说你可以使用Description 列而不需要executablepath 来获取它。
  • 这个工作完美。这两个进程从两个不同的位置运行,因此我可以轻松获得所需的一个。谢谢。
【解决方案2】:

如果你想通过窗口标题过滤你的进程列表,只需使用

tasklist /FI "windowtitle eq Title"

作为@Axel 对 WMI 的回答的补充 - description 也是如此:

WMIC Process WHERE "Description='Only One'" GET ProcessID

在 VBS 中:

Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_Process WHERE Description = 'My Desc'",,48) 
For Each objItem in colItems
'Do Stuff
Next

description 的另一个可能值是程序集的描述,可使用 PowerShell 检索。使用Get-Process 获取程序集路径并使用[System.Diagnostics.FileVersionInfo]::GetVersionInfo($File).FileDescription 检索其描述。

【讨论】:

  • 感谢您提供的所有信息!
猜你喜欢
  • 2014-08-31
  • 2013-02-20
  • 2014-04-16
  • 1970-01-01
  • 2011-09-28
  • 1970-01-01
  • 1970-01-01
  • 2019-12-18
  • 1970-01-01
相关资源
最近更新 更多