广州葆元健康生物科技有限公司


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

网络编程 PowerShell查询和删除打印任务操作代码实例 06-21

适用于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复制命令行历史命令方法
适用于所有PowerShell版本要保存你在当前PowerShell控制台上输入的所有的PowerShell命令,试试下面的代码:(Get-History).CommandLine|clip.exe它会复制所有的命令道

Powershell脚本中使用条件断点实例
适用于PowerShell3.0或者更高版本!PowerShellISE只支持行断点:它可以让脚本运行至特定的调试行:你可以按F9来添加或者移除断点。但是需要保证该脚本已

PowerShell中读取多行文本示例
适用于PowerShell3.0或者更高本版有时,你可能会偶尔发现下面的代码:$FilePath="$env:SystemRootWindowsUpdate.log"$ContentsWithLinebreaks=(Get-Content$FilePath)-join"`r`n"猜猜


编辑:广州葆元健康生物科技有限公司

标签:适用于,断点,命令,脚本,更高