在 Windows 上快速终止所有正在运行的进程

问题描述

我用 python 用 os.kill 终止了大部分进程,但它在 Windows 上并不能正常工作。

我尝试了多种终止进程的方法。 第一个是使用 wmi.WMI.Win32_Process() 获取所有进程,这非常慢。所以我把它改成这样:

def processes():
    subp = subprocess.Popen(["tasklist","/FO","CSV","/NH"],stdout=subprocess.PIPE)
    processes_from_command = subp.stdout.read().decode("ISO-8859-1")
    subp.terminate()

    for row in processes_from_command.split("\n")[:-1]:
        yield int(row.split(",")[1].replace("\"",""))

这给了我一个生成器对象,它为我提供了所有正在运行的进程的进程 ID。然后我用 os.kill 杀死了它们。但仍有一些进程不想像 explorer.exe 那样被终止。

How can I kill the explorer.exe process?。 那里的最佳答案建议使用 taskkill ,它工作得很好,只是它很慢。 有什么方法可以在 processes() 异步中的所有 pid 上运行 taskkill?如果不是,我将如何快速终止所有进程。

解决方法

TASKKILL /PID 1230 /PID 1241 /PID 1253 /T ?也许?