在Windows中杀死一个进程

Windows机器上的程序偶尔会疯狂地挂起。所以我将调用任务管理器并点击“End Process”按钮。然而,这并不总是有效;如果我尝试足够多的次数,那么它通常最终会死亡,但我真的希望能够立即杀死它。在Linux上,我可以只kill -9来保证进程将死亡。

这也可以用于编写批处理脚本,而编写批处理脚本就是编程。

一个免费的第三方应用程序就可以了,尽管我更希望能够在我第一次坐下来的机器上做到这一点。

640908 次浏览
taskkill /im myprocess.exe /f

“/f”代表“力”。 如果你知道PID,那么你可以指定它,如:

taskkill /pid 1234 /f

还有很多其他选项,只要输入taskkill /?对所有人来说。"/t"选项杀死一个进程和所有子进程;这可能对你有用。

从sysinternals(现在的Microsoft)获取进程资源管理器

进程资源管理器- Windows Sysinternals |微软文档

Process - tab上的“End Process”调用TerminateProcess,这是Windows知道的杀死进程的最终极方式。

如果它没有消失,它目前被锁定在等待一些内核资源(可能是一个有bug的驱动程序),并且没有什么(除了重新启动)可以让进程消失。

看看这篇来自wayback的博客文章:http://blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

基于Unix的系统,如Linux也有这样的问题,如果进程处于所谓的“不可中断睡眠”(由top和ps显示为状态D),那么进程可以在kill -9中存活,此时进程睡眠得非常好,以至于它们无法处理传入信号(这就是kill所做的-发送信号)。

通常情况下,不间断睡眠不会持续很长时间,但在Windows下,损坏的驱动程序或损坏的用户空间程序(vfork没有exec)可能会永远睡在D中。

一个很有效的技巧是附加一个调试器,然后退出调试器。

在XP或Windows 2003上,你可以使用ntsd来完成这个任务:

ntsd -pn myapp.exe

安全运输科会打开一个新窗口。只需在窗口中输入'q'退出调试器并取出进程。

我知道,即使在任务管理器似乎无法终止进程时,这种方法也能起作用。

不幸的是,ntsd已经从Vista中删除了,你必须安装(免费的)Windows的调试工具来获得合适的调试器。

当ntsd访问被拒绝时,尝试:

ZeroWave被设计成一个简单的工具,可以为任何类型的进程提供多级终止。

ZeroWave也是一个易于使用的程序,由于其简单的安装和非常友好的图形界面。

ZeroWave有三种终止模式,“疯狂”模式可以终止任何类型的进程,可以在Windows上运行。

ZeroWave似乎不能杀死avp.exe

设置AT命令以SYSTEM方式运行任务管理器或进程资源管理器。

AT 12:34 /interactive "C:/procexp.exe"

如果进程资源管理器在您的根C驱动器中,那么这将以SYSTEM方式打开它,您可以杀死任何进程而不会出现任何拒绝访问的错误。把这个设置为未来的一分钟,然后它就会跳出来。

约瑟夫·斯蒂恩斯是对的。打开cmd.exe并运行

taskkill /im processname.exe /f

如果出现错误,

ERROR: PID为1234的进程“process.exe”不能存在 终止。 原因:Access is denied.

.访问失败

然后尝试以管理员身份运行cmd.exe。

< em >过程黑客< / em >有许多杀死进程的方法。

.

(右键单击进程,然后转到Miscellaneous->终结者。)

供您参考,您有时可以使用SYSTEM或Trustedinstaller来终止任务;)

谷歌quickkill_3_0.bat

sc config TrustedInstaller binPath= "cmd /c TASKKILL /F  /IM notepad.exe
sc start "TrustedInstaller"

我也有这个问题,下面是我解决它的方法。

1/打开«任务管理器»

2/在列表中找到应用程序名称

3/一旦找到,右键单击它的名称,然后单击«properties»

4/在属性界面中,单击«security«

5/单击«edit»更改权限

6/«拒绝»所有用户的所有权限,单击«应用»然后«确定»

7/单击«高级»进行特殊权限设置

8/删除所有用户的权限

9/点击«apply»,然后«ok»

10/再次点击«apply»然后«ok»

11/你现在可以在任务管理器上杀死进程,以及卸载你想要的应用程序。

wmic process where processid="11008" call terminate