我正在寻找一种使用PowerShell的方法来检测新的打印作业何时到达打印队列。过去几天一直在搜索,而我想出的最好的方法是引用“ PRINTER_CHANGE_ADD_JOB”标志here,但没有关于如何使用它的信息。
我希望能够做一些类似线程的事情,这些话题涉及注册事件以监视文件夹中的新文件(例如,使用System.IO.FileSystemWatcher this TechNet article)。
是否有可比的打印队列?任何示例代码,甚至是文章或教程的指针,将不胜感激。我只是几个月前才开始使用PowerShell。
答案 0 :(得分:0)
如果您有打印服务器,则可以使用PowerShell PrintManagment模块https://docs.microsoft.com/en-us/powershell/module/printmanagement/?view=win10-ps。
问候 诗涵
答案 1 :(得分:0)
据我所知,我不认为有任何内置的PowerShell cmdlet可以满足您的需求。但是您可以使用Get-PrintJob模块将其编写脚本,也可以使用WMI获取此信息。如果您想收到通知,则可以写入事件日志,也可以将输出通过管道发送到send-mailmessage,并在打印作业出错时向您发送电子邮件通知。
Get-WMIObject Win32_PerfFormattedData_Spooler_PrintQueue |Select Name, @{Expression={$_.jobs};Label="CurrentJobs"}, TotalJobsPrinted, JobErrors