Taskkill /f 不能终止进程

当我从VS启动一个实验性的VS实例进行调试,然后停止调试(有时直接从父级VS中停止),一个僵尸devenv.exe进程仍然在运行,我无法终止它。它保留了许多我的 dll 文件。

当我以管理员身份登录到这台64位 Win7计算机时,我期望的是能够终止任何我想要终止的进程。

I tried (from Administrator command prompt):


End Task from Task Manager.
TASKKILL /F /IM devenv.exe
PSKILL devenv.exe

没有返回任何错误,而 TASKKILLPSKILL 返回 终止/终止进程成功的消息。但是 devenv.exe 仍然在运行,因为 PID保持不变,所以不是重新生成的。现在它只有在系统重启时才会消失,但这不是一个很好的解决方案。

注意:LockHunter 显示 devenv 已经锁定了自己,并且无法解锁。。

Process Monitor shows devenv to be in some kind of 'Process Profiling' loop

上面的屏幕截图是 Process Monitor 的输出,显示 devenv 处于某种 “ Process Profiles” 循环中(右键单击它,然后在新标签中单击打开图像以正确查看)。

有什么办法可以在 Windows 上终止这种进程吗?

529907 次浏览

我见过好几次了,唯一的解决办法就是重启。

你可以试试使用 PowerShell: 处理 Devenv 杀人案

但是,如果其他方法失败,这可能也会失败

依赖于某些服务的某些 Exe 文件,

因此,您需要找到相应的服务并首先停止。

我可以通过杀死 Explorer.exe 来解决我在这个问题上的问题,反过来,它又对我想杀死的进程上瘾了。我想这也可能发生,如果进程通过钩子打开接口,可能被锁定。

我知道现在很晚了,但是 taskkill /im devenv.exe /t /f应该可以工作。 /t也可以杀死子进程。

你必须杀死子进程也如果有任何生成成功杀死你的进程

taskkill /IM "process_name" /T /F


/T = kills child process


/F = forceful termination of your process
  1. 开放式任务管理器
  2. 选择服务标签
  3. 选择要杀死的进程(devenv.exe) ,然后单击 services 按钮
  4. 选择属性并禁用它..。

只是在 Windows Server 2008 R2上遇到了同样的问题,没有任何帮助,不是任务管理器或任务杀死。但是,作为管理员的 Windows PowerShell 运行与“ kill-id pid”一起工作

(到目前为止)重启是唯一适合我的解决方案。

优秀的 Mark Russonovich 对不可杀死的过程有一个很好的解释。

总而言之,这很可能是由于未处理的 I/O 请求没有得到正确处理(由您的程序可能访问的设备驱动程序)

Https://techcommunity.microsoft.com/t5/windows-blog-archive/unkillable-processes/ba-p/723389

Taskkill 和 powershell (kill)方法对我不起作用; 它仍然显示“访问被拒绝”。

我运气好一点:

wmic process where "name='myprocessname.exe'" delete

我在 Code: : Block 中使用 gdb 调试过的进程遇到了问题。 当它挂起时,意外地进入了源代码范围之外的指令(作为没有源代码或系统函数的库) ,您不能从 Code: : Block 或 Task-Manager 退出调试。

我认为这是在 Code: : Block 中实现 gdb 的一个错误,但也可能是在 gdb 中;)

我的解决方案:

taskkill /F /IM process.exe /T

这显示了父进程的 PID。现在杀死父进程:

taskkill /PID yyyy

两个都不见了。

成交。

NirSoft 的 NirCmd为我做到了这一点:

nircmd killprocess "process name.exe"

Kill 进程手册页是 给你

本机 tskill <pid>(或 tskill.exe <pid>)在 Windows10上对我很有用,没有其他本机答案可以做到这一点。

在我的例子中,我有一些 chrome.exe 进程,任务管理器的“ End Task”可以工作,但是 taskkill /F /T /PID <pid>和 powershell 的 kill -id <pid>都不能工作(即使两个 shell 都作为管理员运行)。

这非常奇怪,因为 taskkill据说是 tskill的一个更好的 api-and-does-more 版本。

在我的例子中,为了杀死某个任务的所有实例,我使用了 FOR /F "usebackq tokens=2 skip=2" %i IN (`TASKLIST /FI "IMAGENAME eq name_of_task.exe"`) DO tskill %i

我在3000端口启动一个节点应用程序时遇到了同样的问题,它没有正确关闭,即使重新启动后进程仍在继续运行。

在管理员模式下运行的 taskkill 或 powershell 命令都不适合我。

我使用了 MS Process Expoler > Properties > Image > 工作目录(这应该是我的项目目录)。

最后,我必须在 SafeMode 中重新启动并重命名项目文件夹,然后重新启动。正在消耗3000端口的 Node 进程自杀了。

我要在这里提出一些建议,因为我最近面临同样的问题,我尝试了所有可能的答案,但没有一个工作。我出现了一些错误,比如

错误: 无法终止 PID 为23908的进程。 原因: 没有任务的运行实例。

使用命令提示符。强力外壳也没什么用。它只是执行命令,在进程仍在运行的情况下不做任何响应。

直到我决定删除相关的’。Exe 文件。因为文件是活动的,窗口不允许删除,但是在那个警告窗口中,它给了我进程的名称,这个进程阻碍了我想要终止的任务。 我能够终止最初的任务,从而终止 bug 过程。

如果所有的解决方案都不奏效,那么绝对值得一试。

我也有同样的问题,在另一个网站上找到了这个解决方案: Exe“ Get-Process processname | Stop-Process” 它为我工作,我在同一条船上,我必须重新启动,/T 不会工作。

如果 taskkill /F /T /PID <pid>不工作。 尝试使用 Run as Administrator打开升高的终端。

在窗口菜单中搜索 cmd,然后右键单击 Run as Administrator, 然后再次运行命令。这对我很有效。

我用 taskkill得到了以下结果

>taskkill /im "MyApp.exe" /t /f
ERROR: The process with PID 32040 (child process of PID 54176) could not be terminated.
Reason: There is no running instance of the task.


>taskkill /pid 54176  /t /f
ERROR: The process "54176" not found.

对我起作用的是 系统内部的 pskill

>pskill.exe -t 32040


PsKill v1.15 - Terminates processes on local or remote systems
Copyright (C) 1999-2012  Mark Russinovich
Sysinternals - www.sysinternals.com


Process 32040 killed.

你可以从 系统内部的实时网站得到 pskill

如果您下载免费的 sysInternal 套件,它有一个 pskill.exe 应用程序,可以很好地处理这些类型的任务: pskill.exe“ process _ name” 即使不使用它的-t 选项,它也可以在这些进程上工作。

我做了下面这些,在一个高级的动力外壳上:

PS C:\Windows\system32> wmic.exe /interactive:off process where "name like `'java%'`" call terminate

输出:

Executing (\\SRV\ROOT\CIMV2:Win32_Process.Handle="3064")->terminate()
Method execution successful.

输出参数:

instance of __PARAMETERS
{ReturnValue = 0; };

我在 https://community.spiceworks.com/topic/871561-wmic-error-like-invalid-alias-verb上找到了一些语法信息

在我的案例中,在与这个问题斗争了几天之后(它发生在 VirtualBox 和 μTorrent 进程中) ,我发现它是由 Windows Update 补丁 KB4338818(Windows 7 x64)引起的网络驱动程序问题引起的。卸载了那个补丁之后一切都恢复正常了。我只是觉得这对其他人也有用。

作为一个管理员运行对我来说很有用:

1. 在窗口中搜索 cmd

右键点击 cmd选择“作为管理员运行”

3. netstat -ano | findstr :8080

4. taskkill/pid (your number) /F

My result

同样的问题也发生在我在 VirtualBox 中的 Java 进程上。

在我的案例中,这是由于 WindowsUpdate 补丁 KB4338818(Windows7x64)中的一个 bug。

我通过以下方法解决了这个问题:

  • 卸载 Windows 更新补丁 KB4338818
  • 安装 Windows 更新补丁 KB4338821

正如 弗朗西斯提到的,由于以下原因,某些进程不能被终止

“未处理的 I/O 请求”

在我的经验,我是处理错误的 图形驱动程序,这将导致我的游戏崩溃,无法关闭它,作为最后的手段我 残疾人的图形驱动程序和过程终于走了。

如果您的应用程序正在等待从 司机资源像 wifi 或图形尝试 致残他们在 设备管理器,你需要挖一点深,看看他们挂在哪里。

这当然不推荐,但是有时候你已经没有什么可以失去的了。

我遇到了同样的问题,正如这里的许多其他人所说的那样,普通的 Kill 命令都不能正常工作。问题文件是由远程桌面服务器上的用户从网络共享运行的可执行文件。对于多个共享用户来说,在工作日重新启动不是一件容易的事情。即使用户注销了 exe,任务管理器中仍然列出了该 exe。我发送到共享文件夹的服务器,从计算机管理-> 会话发现会话仍然从该 RDP 服务器打开的用户,即使他已经注销。右击-> 关闭会话并释放文件锁。

问倒我了,为什么我不能结束考试。当我尝试删除该文件时,最初收到的错误消息是“该操作无法完成,因为该文件在系统中打开”

希望这能帮到别人。

对我来说,它的工作方式是我必须终止父进程。找出父进程并杀死它

taskkill /IM "parent_process_name.exe" /T /F

运行 CMD 作为管理员将修复问题

在我的情况下,这里的所有解决方案都不管用。我最终发现这个程序在尝试投票 USB 音频接口时被冻结了。因此,我拔掉了我连接的 USB DAC,令我惊讶的是,应用程序立即停止。弗朗西斯的回答提到,这可能是“未处理的 I/O 请求没有得到正确处理(由一个设备驱动程序可能已经访问)”的结果,这可能解释了为什么这修复了它。

我认为这真的取决于程序冻结时在做什么,但如果没有其他解决方案工作,尝试断开所有 USB 设备,看看是否其中之一可能是原因。

Taskkill/f/im“ process.exe”

作为管理员运行 cmd 或. bat 文件为我工作

用于终止窗口中运行的 PID 任务:

TASKKILL  /PID "Taskname"  /F

使用 wmic: 显示所有正在运行的进程,其中 process 的名称为 cmd.exe

wmic process where name="cmd.exe" GET ProcessId, CommandLine,CreationClassName

然后通过 processId (PID)终止特定的 process 实例

WMIC PROCESS WHERE "ProcessID=13800" CALL TERMINATE

而“任务杀手”不起作用

taskkill /f /t /pid 14492


ERROR: The process with PID 14492 (child process of PID 7992) could not be terminated.
Reason: There is no running instance of the task.

简单的技巧对我很有用

tskill 14492