按名称和所有者杀死进程?

Chr*_*s J 12 windows windows-7 kill process

在我考虑重新发明轮子并自己动手之前,有没有人知道允许我杀死进程、按进程名称进程所有者过滤的应用程序/实用程序?或者这可以通过powershell完成吗?(遗憾的是,我的 powershell-fu 缺乏)。

我都看过pskilltaskkill。虽然pskill允许按进程名称终止,但它不允许我按进程所有者进一步过滤。我还通过 wmic ( wmic process)查看了 WMI ,但是 WMI 接口不返回进程所有者(至少从我所知),所以也不能使用它。

基本原理
我在 Windows 上进行了大量开发。其中一些涉及处理组件服务 (COM+)。COM+ 有一个通用的主机进程——dllhost.exe——它用于自定义(即我开发的东西)元素和系统进程。我可以通过他们经营的所有者来区分他们。因此,例如,我想杀死我拥有的所有 dllhost.exe 进程,但忽略 SYSTEM 拥有的进程。

这将节省我定期进入任务管理器并识别和手动杀死每个人:-)

use*_*686 24

你看起来不够努力。

taskkill /f /fi "imagename eq foo.exe" /fi "username eq Chris"
Run Code Online (Sandbox Code Playgroud)

您甚至可以使用加载的模块进行过滤/fi "modules eq libfoo.dll"

  • 比PS方法容易得多:) (2认同)

EBG*_*een 5

在powershell中你会这样做:

gwmi -query "select * from win32_process where name='PROCESSNAME.exe'" | %{if($_.GetOwner().User -eq 'USERNAME'){$_.terminate()}}
Run Code Online (Sandbox Code Playgroud)