# Printing and scanning: spooler triage that works

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

**Tested on**

- Build: 26300.9457 / 26100.33650
- Edition: Pro (26H2) / Server
- Architecture: x64
- Evidence: E1
- Verified: 2026-10-29

## The short answer

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.

## Clear a stuck queue, correctly

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

Remove a single job:

```powershell
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:

```powershell
Stop-Service Spooler
Remove-Item "$env:SystemRoot\System32\spool\PRINTERS\*" -Force -ErrorAction SilentlyContinue
Start-Service Spooler
```

> **Caution: Stopping the spooler breaks printing for everyone**
>
> On a shared machine or print server, this interrupts every user's jobs. Do it when nobody is printing, and tell them afterwards if a job was lost.

## Driver choice

| 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.

```powershell
# 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.

## Scan-to-PC

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.

## The order that saves time

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.

## Related

- [USB devices that are not recognised](https://windows.homes/en/windows/peripherals/usb-device/)
- [Touchpads, pens and Precision drivers](https://windows.homes/en/windows/peripherals/touchpad-pen/)
- [LAN shares and SMB versions](https://windows.homes/en/windows/remote/smb-shares/)

## Lab boundary

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

## Sources

- [Microsoft Learn — Print devices](https://learn.microsoft.com/en-us/windows-hardware/drivers/print/)
- [Microsoft Learn — prncnfg](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/prncnfg)
- [Microsoft Learn — Troubleshoot Windows client](https://learn.microsoft.com/en-us/troubleshoot/windows-client/)

---

Source: https://windows.homes/en/windows/peripherals/printing/
