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


12

在我研究重塑自己的方式之前,是否有人知道允许我杀死进程的应用程序/实用程序,并按进程名称进程所有者进行过滤?或者可以通过powershell完成吗?(可悲的是,我缺少powershell-fu)。

我已经看过pskilltaskkill。尽管pskill允许按进程名称终止,但不允许我按进程所有者进一步过滤。我也通过wmic(wmic process)看过WMI ,但是WMI接口没有返回进程所有者(至少从我的判断中可以看出),因此也不能使用它。

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

这将使我免于定期进入任务管理器,并识别并手动杀死每一个:-)

Answers:


5

在powershell中,您可以执行以下操作:

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

啊-非常高兴。效果很好:-)
Chris J

24

您看起来不够努力。

taskkill /f /fi "imagename eq foo.exe" /fi "username eq Chris"

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


2
比PS方法容易得多:)
EBGreen 2012年

您是对的-我看起来不够努力。那对我不好
克里斯J
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.