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

2023-12-05 0 512

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

您可能感兴趣的文章:

  • PowerShell中删除空格、点号、减号和换行方法代码实例
  • Shell脚本实现删除邮件队列
  • Shell脚本实现递归删除空文件夹
  • Shell脚本自动删除指定大小以上的备份文件
  • shell实现tr删除替换详解
  • Shell脚本实现删除一年前文件功能分享
  • 使用bash shell删除目录中的特定文件的3种方法
  • Shell中如何删除文本比较长的行的实现方法

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 PowerShell PowerShell查询和删除打印任务操作代码实例 https://www.u-9.cn/jiaoben/powershell/101011.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务