Windows
刪除舊的 Windows 列印作業
在我們的主要 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 小時。