首页 > 解决方案 > 监控所有打印队列作业

问题描述

如何从 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/

标签: c#sql-serverpowershellcmd

解决方案


使用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)

您还可以使用PrintManagementPowerShell 模块:

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

推荐阅读