適用于Windows 8.1或Server 2012 R2
Windows 8.1 和 Server 2012 R2上自帶了一個(gè)PowerShell組件:“PrintManagement“,它包含了所有管理本機(jī)和遠(yuǎn)程打印機(jī)的命令。
在之前的小技巧中,我們演示了如何讀取打印機(jī)任務(wù)。每一個(gè)打印任務(wù)都有一個(gè)屬性JobStatus ,用來(lái)表示該任務(wù)是否打印成功。
所有的狀態(tài)可以這樣獲取:
復(fù)制代碼 代碼如下:
PS> Import-Module PrintManagement
PS> [Microsoft.PowerShell.Cmdletization.GeneratedTypes.PrintJob.JobStatus]::GetNames([Microsoft.PowerShell.Cmdletization.GeneratedTypes.PrintJob.JobStatus])
Normal
Paused
Error
Deleting
Spooling
Printing
Offline
PaperOut
Printed
Deleted
Blocked
UserIntervention
Restarted
Complete
Retained
RenderingLocally
接下來(lái)就可以過(guò)濾已存在的任務(wù)了。比如你想列出打印任務(wù)是否已經(jīng)完成,或者遇到了故障:
復(fù)制代碼 代碼如下:
$ComputerName = $env:COMPUTERNAME
Get-Printer -ComputerName $ComputerName | ForEach-Object {
Get-PrintJob -PrinterName $_.Name -ComputerName $ComputerName |
Where-Object { $_.JobStatus -eq 'Complete' -or $_.JobStatus -eq 'Error' -or $_.JobStatus -eq 'Printed'}
}
刪除打印任務(wù)也非常簡(jiǎn)單,Remove-PrintJob即可:
復(fù)制代碼 代碼如下:
$ComputerName = $env:COMPUTERNAME
Get-Printer -ComputerName $ComputerName | ForEach-Object {
Get-PrintJob -PrinterName $_.Name -ComputerName $ComputerName |
Where-Object { $_.JobStatus -eq 'Complete' -or $_.JobStatus -eq 'Error' -or $_.JobStatus -eq 'Printed'}
} |
Remove-PrintJob -CimSession $ComputerName
您可能感興趣的文章:- PowerShell中刪除空格、點(diǎn)號(hào)、減號(hào)和換行方法代碼實(shí)例
- Shell腳本實(shí)現(xiàn)刪除郵件隊(duì)列
- Shell腳本實(shí)現(xiàn)遞歸刪除空文件夾
- Shell腳本自動(dòng)刪除指定大小以上的備份文件
- shell實(shí)現(xiàn)tr刪除替換詳解
- Shell腳本實(shí)現(xiàn)刪除一年前文件功能分享
- 使用bash shell刪除目錄中的特定文件的3種方法
- Shell中如何刪除文本比較長(zhǎng)的行的實(shí)現(xiàn)方法