如何在 Windows 10 啟動時清除列印佇列

如何在 Windows 10 啟動時清除列印佇列

我們有運行 1803 的 Windows 10 機器。

後台列印程序設定為手動。我們透過任務計劃程式安排了一個 powershell 腳本,以在啟動和使用者登入為 NT AUTHORITY\SYSTEM 時執行 powershell 腳本

程式/腳本:Powershell 新增參數(可選):-File "C:\product\Printer Queue Clear\printqueueClear.ps1"

有問題的腳本(我知道,如果服務設定為手動啟動,net stop spooler 是多餘的)

net stop spooler

Remove-Item C:\Windows\System32\spool\PRINTERS\* -Force

net start spooler

問題:如果作業排隊時 USB 連接的印表機已從電腦上拔下,則計算機將關閉(列印作業仍在佇列中),重新連接印表機,然後啟動計算機,所有列印作業都會在使用者開始登入後立即傳送。出於合規性原因,我們不能讓這種情況發生。

真正的問題是,為什麼列印後台處理程序會在下列情況下吐出排隊的作業: 1. 設定為手動 2. 有問題的程式碼僅在印表機背景列印磁碟機清除後才啟動背景處理程序。

答案1

我不確定後台處理程序服務設定為手動的意義。 Windows 能夠(按需)啟動服務,無需您的介入。

聽起來解決所描述的場景的最簡單方法是在關閉或登出時執行腳本,而不是在啟動或登入時執行腳本。

此外,如果存在我不知道的情況,您可以在關閉或登出時停用列印後台處理程序服務,並且僅在啟動或登入時執行某些任務後才啟用它。

答案2

你的程式碼不起作用。如果確實設定為手動,請嘗試以下操作:

net stop spooler
Remove_Item $env:windir\System32\spool\PRINTERS\* -Force
net start spooler

答案3

程式碼中的拼字錯誤,應該是-減去不是一個_工作程式碼中的底線Remove-Item :(但在 powershell 中,而不是 cmd 中):

net stop spooler
Remove-Item $env:windir\System32\spool\PRINTERS\* -Force
net start spooler

相關內容