Windows

刪除舊的 Windows 列印作業

  • April 30, 2021

在我們的主要 Windows 2003 列印伺服器上,我們共享大約 500 台列印機。我們通常有大約 50 個卡住的列印作業。儘管離世界末日還很遠,但它讓我很煩,我往往最終每週花費 30 多分鐘來尋找和刪除卡住的工作。

我真正想要的是一個腳本,用於刪除所有列印機上超過 24 小時的所有列印作業。

來自 UNIX 背景,我發現 Windows 腳本非常令人困惑。任何關於我如何開始這項任務的建議都將不勝感激。任何完整的解決方案都會令人驚嘆。;)

乾杯,

食物。

這在 Powershell 中應該相當簡單。您會發現來自 *nix 的 powershell 更符合您的喜好。但是,您將使用 WMI,這確實是一種祝福和詛咒。

一些範常式式碼可以滿足您的需求(未測試):

$strComputer = "."

$PrintJobs = get-wmiobject -class "Win32_PrintJob" -namespace "root\CIMV2" -computername $strComputer | Where-Object { $_.StartTime -lt $($(Get-Date).addDays(-1)) }

foreach ($job in $PrintJobs) {
   Write-Host "Canceling job $($job.JobId)"
   $job.Delete
}

基本上,您只需要從 WMI 獲取開始時間小於現在的所有對象 - 24 小時。

引用自:https://serverfault.com/questions/14098