PowerShell查询和删除打印任务操作代码实例(powershell删除文件)干货分享

随心笔谈9个月前更新 admin
211 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章介绍了Windows 8.1和Server 2012 R2上自带的PowerShell组件“PrintManagement”,该组件包含管理本机和远程打印机的命令。文章详细描述了如何通过PowerShell获取打印任务的状态信息,包括JobStatus属性的可能值(如Normal、Paused、Error等),并提供了过滤打印任务状态的代码示例。此外,文章还演示了如何删除已完成或出现故障的打印任务。文章末尾推荐了其他相关PowerShell使用方法的文章。



适用于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中如何删除文本比较长的行的实现方法

© 版权声明

相关文章