PowerShell查询和删除打印任务操作代码实例
程序员文章站
2022-06-24 10:59:32
适用于windows 8.1或server 2012 r2
windows 8.1 和 server 2012 r2上自带了一个powershell组件:“printma...
适用于windows 8.1或server 2012 r2
windows 8.1 和 server 2012 r2上自带了一个powershell组件:“printmanagement“,它包含了所有管理本机和远程打印机的命令。
在之前的小技巧中,我们演示了如何读取打印机任务。每一个打印任务都有一个属性jobstatus ,用来表示该任务是否打印成功。
所有的状态可以这样获取:
复制代码 代码如下:
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
接下来就可以过滤已存在的任务了。比如你想列出打印任务是否已经完成,或者遇到了故障:
复制代码 代码如下:
$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即可:
复制代码 代码如下:
$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