当前位置: 移动技术网 > IT编程>脚本编程>Shell > PowerShell查询和删除打印任务操作代码实例

PowerShell查询和删除打印任务操作代码实例

2017年12月08日  | 移动技术网IT编程  | 我要评论

适用于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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网