如果一切正常,请不要忘记通过将此回复标记为“已采纳答案”来分享您解决问题的经验。 如果您需要更多信息,欢迎随时留言。 我们非常乐意为您提供帮助
3 樓 Print Queue 被壞檔塞爆,Central Print Server 死 Spooler,求 PowerShell 免重啟 Purge 腳本
公司 3 樓個 Print Queue 今朝突然塞死咗。查返發現有 user 發送咗個 corrupt 咗嘅 500 頁大 PDF,直接令到 Central Print Server 個 spoolsv.exe (Print Spooler) 鎖死,結果成個 3 樓所有 Print Job 完全卡住(Stuck)。
而家去 GUI 右鍵 Cancel 個 Job 一直顯示 "Deleting..." 但毫無反應。如果直接 Restart 個 Print Spooler Service,舊嘅 .SHD 同 .SPL 檔又會直接 Lock 住個 directory,導致開返 service 個陣又塞過。
除咗開 Maintenance Window 去打擾其他 Floor 之外,有冇人有現成嘅 PowerShell One-Liner / Automation Script,可以:
強行 Stop 埋依附喺 Print Spooler 下面嘅 dependencies (例如某些 Driver Monitor Services)
自動 Purge 走 C:\Windows\System32\spool\PRINTERS 裏面嘅過期 stale .SPL / .SHD 檔案
再乾淨重新 Start 返 Service 兼清掉指定 Queue?
唔該晒!
Windows 商務版 | Windows 365 企業版
-
HLBui 15,430 信譽點數 獨立顧問
2026-09-24T08:56:22.2533333+00:00 你好 Min Yang
遇到大 PDF 卡死整个打印队列真的很常见。 GUI 上点 “Deleting…” 没反应是因为 spoolsv.exe 已经被那份坏掉的 Job 锁住了。 比较干净的做法是用 PowerShell 一次性停掉 Print Spooler 和相关依赖服务,然后清空 PRINTERS 目录 里的 . SPL / . SHD 文件,再重新启动服务。 你可以用类似的脚本:
停止服务 -名称 Spooler -强制
获取服务 |在哪里-对象 {$_.名字 -类似“打印”} |停止-服务 -强制
Remove-Item “C:\Windows\System32\spool\PRINTERS*.shd” -强制
Remove-Item “C:\Windows\System32\spool\PRINTERS*.spl” -强制
Start-Service -Name Spooler
这样就能强制清掉卡住的 Job,队列会恢复正常。 记得在执行前先通知用户,避免误删正在排队的正常任务。 以后也可以考虑加个 自動化清理腳本 定期跑,减少人工干预。