如何使用Powershell在Windows队列中检测新的打印作业



我正在寻找一种方法,使用PowerShell来检测新的打印作业何时到达打印队列。在过去的几天里,我一直在搜索,我得到的最好的结果是在这里引用了"PRINTER_CHANGE_ADD_JOB"标志,但没有关于如何使用它。

我希望能够做一些类似于线程的事情,谈论注册事件以监视文件夹中的新文件(例如,这篇使用System.IO.FileSystemWatcher的TechNet文章(。

打印队列有类似的东西吗?任何示例代码,甚至指向文章或教程的指针,都将不胜感激。我几个月前才开始使用PowerShell。

如果您有打印服务器,则可以使用PowerShell打印管理模块https://learn.microsoft.com/en-us/powershell/module/printmanagement/?view=win10-ps。

问候世汉

据我所知,我不认为有任何内置的PowerShell cmdlet可以获得您想要的东西。但是您可以使用Get-PrintJob模块编写脚本,也可以使用WMI获取此信息。如果您希望收到通知,您可以写入事件日志,也可以通过管道输出以发送邮件,并在打印作业出错时向您发送电子邮件通知。

Get-WMIObject Win32_PerfFormattedData_Spooler_PrintQueue |Select Name, @{Expression={$_.jobs};Label="CurrentJobs"}, TotalJobsPrinted, JobErrors

最新更新