监视所有打印队列作业

时间:2019-06-05 11:55:15

标签: c# sql-server powershell cmd

如何从诸如PowerShell,命令提示符或C#win窗体的后台应用程序监视所有打印机队列作业,并将所有日志存储到SQL Server表中?

所需的日志信息:

  1. 所有者
  2. 文档名称
  3. 页面
  4. 大小

我尝试过 https://blogs.technet.microsoft.com/parallel_universe_-_ms_tech_blog/2012/09/27/simple-print-queue-monitor-powershell/

1 个答案:

答案 0 :(得分:2)

使用System.Printing命名空间中的类,例如:

本地:

Add-Type -AssemblyName "System.Printing"
[System.Printing.LocalPrintServer]::GetDefaultPrintQueue()

或远程:

Add-Type -AssemblyName "System.Printing"
[System.Printing.PrintServer]::new("\\$computerName", [System.Printing.PrintSystemDesiredAccess]::AdministrateServer)

您还可以使用PrintManagement PowerShell模块:

Import-Module "PrintManagement"
$printers = Get-Printer -ComputerName $computerName
Get-PrintJob -ComputerName $computerName -PrinterName $printers[0].Name
相关问题