Monitor all print queue job

Use the classes in the System.Printing namespace, for example:

Local:

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

Or remote:

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

You can also use the PrintManagement PowerShell module:

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

Leave a Comment