windows打印任务卡在队列显示“已删除”或“错误”却无法清除,是spooler缓存未清理所致;需停止print spooler服务、清空c:\windows\system32\spool\printers文件夹、重启服务,再用powershell命令或注册表删除jobs项彻底解决。

打印任务卡在队列里,状态显示“已删除”或“错误”,但始终不消失,双击打开打印机属性也看不到任务,实际却持续占用系统资源、阻止新任务提交——这是Windows打印后台处理服务(Spooler)缓存文件未被正确清理导致的典型残留问题。
停止打印后台处理服务
第一步:按 Win + R 打开运行框,输入 services.msc → 回车,打开服务管理窗口。
第二步:在服务列表中找到 Print Spooler,右键选择【停止】。这一步必须做,否则 spool 文件夹会被系统锁定,后续无法删除任何内容。
注意:停止服务后,所有正在排队的打印任务会立即中断,但当前已发出但尚未开始打印的任务不会回退到应用程序中——它们已脱离应用控制,只存在于 spool 缓存里。
定位并清空 spool 文件夹
打开文件资源管理器,在地址栏直接粘贴路径:C:\Windows\System32\spool\PRINTERS → 回车。
该文件夹内全是扩展名为 .SPL 和 .SHD 的临时文件,分别对应打印数据和任务元信息。只要 Print Spooler 服务处于运行状态,这些文件就无法删除;现在服务已停,可安全清除。
全选文件(Ctrl+A)→ 按 Delete 键删除。如果提示“文件正在使用中”,说明 Print Spooler 服务没真正停止,需返回服务窗口确认状态是否为“已停止”。
重启打印后台处理服务
回到 services.msc 窗口,右键 Print Spooler → 选择【启动】。
服务启动成功后,再打开“设备和打印机”,右键你的打印机 → “查看正在打印的内容”,此时任务列表应为空。若仍有残留条目,说明某项任务写入了注册表级持久化记录,需进入下一步。
手动清理注册表中的打印任务残留项
方法一:使用 PowerShell 强制清除(推荐)
以管理员身份运行 PowerShell,执行以下命令:
Get-Printer | ForEach-Object { Get-PrintJob -PrinterName $_.Name | Remove-PrintJob }
该命令会遍历所有已安装打印机,逐个清空其当前可见任务队列。它绕过 spool 文件系统,直接调用 Windows 打印管理 API,对服务重启后仍顽固存在的“幽灵任务”有效。
方法二:手动修改注册表(仅当 PowerShell 方式无效时使用)
按 Win+R 输入 regedit → 定位到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers → 展开你的打印机名称子项 → 找到 Jobs 项 → 右键导出备份 → 再右键删除整个 Jobs 子项。
【删除 Jobs 项不可逆,且会导致该打印机所有历史任务记录丢失】 删除后重启 Print Spooler 服务即可。











