Skip to content

Printing and scanning: spooler triage that works

Verified 2 min read

Clear a stuck queue in the right order, choose between vendor and universal drivers, and get scan-to-PC working again.

Tested onPro (26H2) / Server · Build 26300.9457 / 26100.33650 · x64
E1
Build
26300.9457 / 26100.33650
Edition
Pro (26H2) / Server
Architecture
x64
Support
Documentation (E1)
Evidence
E1Official documentation
Verified
2026-10-29
Page type
Troubleshoot

Almost every “printer is broken” case is one of four things:

  1. A stuck job blocking the queue.
  2. The wrong driver (generic instead of vendor, or 32-bit leftovers).
  3. The port (USB vs WSD vs TCP/IP) pointing at something that moved.
  4. The spooler service in a bad state.

Fix them in that order — clearing the queue first, reinstalling drivers last.

Terminal window
Get-Printer | Select-Object Name,DriverName,PortName,PrinterStatus
Get-PrintJob -PrinterName "Your Printer" | Select-Object Id,DocumentName,JobStatus,SubmittedTime

Remove a single job:

Terminal window
Get-PrintJob -PrinterName "Your Printer" | Where-Object Id -eq 12 | Remove-PrintJob

If the queue will not clear, stop the spooler, delete the spool files, start it again:

Terminal window
Stop-Service Spooler
Remove-Item "$env:SystemRoot\System32\spool\PRINTERS\*" -Force -ErrorAction SilentlyContinue
Start-Service Spooler
Driver type When
Vendor full driver you need finishing options, scanning, ink levels
Universal / class driver basic printing, no vendor tooling, fewer bugs
Microsoft IPP class driver modern network printers, no vendor package

The universal driver is not a downgrade for plain printing — it is often more stable and survives Windows upgrades better. It loses vendor features.

Terminal window
# installed drivers and their versions
Get-PrinterDriver | Select-Object Name,Manufacturer,DriverVersion,PrinterEnvironment
# ports: where the print job actually goes
Get-PrinterPort | Select-Object Name,Description,PrinterHostAddress,PortNumber

A WSD port that keeps failing usually means the printer changed IP or mDNS is blocked. A fixed TCPIP port with a DHCP address fails the same way — reserve the address on the router.

Scanning is a separate pipeline from printing. It breaks independently:

Mechanism Requirement
WSD scan network discovery on, printer reachable by name
Vendor scan app vendor driver/service installed
eSCL/AirScan printer exposes the HTTP scan endpoint
Scan to folder/SMB SMB1 may be required on very old devices — avoid, use scan-to-PC instead

If the printer’s own panel offers “scan to computer”, it depends on the vendor agent running and the PC being discoverable. That is why it works on one machine and not another.

  1. Get-PrintJob — is there a stuck job?
  2. Can you print a test page from the printer panel? (isolates PC vs printer)
  3. Is the port address still correct? (Get-PrinterPort)
  4. Is the driver the vendor one, and current?
  5. Only then: remove the printer and re-add it.

E1. Print architecture and commands are Microsoft-documented. The lab has no printer, so no queue or driver fault was reproduced.

Sources