Skip to content
Back to skills

Windows Printer Troubleshooting

ASecurity

Diagnose and fix Windows printer issues — offline status, USB detection failures, stopped print services, driver problems. Use when the user reports printer not working, showing offline, not connectin

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
ai-agentsshellbashgit

Security analysis

A100/100

Scanned October 6, 2026

npx -y skills add Kairos-ai-agent/kairos-code --skill windows-printer-troubleshooting --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Windows Printer Troubleshooting?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Windows Printer Troubleshooting
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kairos-ai-agent-windows-printer-troubleshooting/badge)](https://www.skillsdirectory.com/skills/kairos-ai-agent-windows-printer-troubleshooting)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: "windows-printer-troubleshooting"
description: "Diagnose and fix Windows printer issues — offline status, USB detection failures, stopped print services, driver problems. Use when the user reports printer not working, showing offline, not connectin"
priority: 0.5
imported-from: "hermes"
source-path: "hermes/skills/.archive/windows-printer-troubleshooting/SKILL.md"
---
# Windows Printer Troubleshooting

Systematic diagnosis for printer issues on Windows. Always check in this order — each step catches a different class of failure.

## Diagnosis Order

1. **Printer online/offline status** — may be software-set to offline
2. **USB device detection** — is Windows seeing the hardware at all?
3. **Print services** — are the required Windows services running?
4. **Driver installation** — is the driver present?
5. **Port configuration** — are ports correctly bound?

## Step 1: Check Printer Status

```powershell
# Check WorkOffline flag and printer status
Get-CimInstance -Class Win32_Printer | Select-Object Name, WorkOffline, PrinterStatus, PortName | Format-Table -AutoSize

# PrinterStatus values: 2=Idle, 3=Printing, 4=Error
```

If `WorkOffline` is `True`, set to online:

```powershell
Get-CimInstance -Class Win32_Printer | Where-Object { $_.WorkOffline -eq $true } | ForEach-Object {
    $_.WorkOffline = $false
    Set-CimInstance -InputObject $_
}
```

## Step 2: Check USB Device Detection

**Critical check** — if printers don't appear here, Windows isn't seeing the hardware at all.

```powershell
# List all USB devices
Get-CimInstance -Class Win32_PnPEntity | Where-Object { $_.DeviceID -like 'USB*' } | Select-Object Name, Status | Format-Table -AutoSize

# Search specifically for printer hardware
Get-CimInstance -Class Win32_PnPEntity | Where-Object { $_.Name -match 'print|pantum|deli|hp|canon|epson|brother' } | Select-Object Name, Status, ConfigManagerErrorCode | Format-Table -AutoSize

# Check for devices with errors (ConfigManagerErrorCode != 0)
Get-CimInstance -Class Win32_PnPEntity | Where-Object { $_.ConfigManagerErrorCode -ne 0 } | Select-Object Name, Status, ConfigManagerErrorCode | Format-Table -AutoSize
```

If printer hardware NOT detected:
- Replug USB cable (both ends)
- Try different USB port (rear ports have better power)
- Try a different USB cable
- Test printer on another computer to rule out hardware failure

## Step 3: Check and Start Print Services

```powershell
# Check all print-related services
Get-Service -Name '*print*', Spooler | Select-Object Name, Status, StartType | Format-Table -AutoSize
```

Required services:
- **Spooler** (Print Spooler) — must be Running, Automatic
- **PrintDeviceConfigurationService** — Manual, should be Running
- **PrintNotify** — Manual, should be Running
- **PrintScanBrokerService** — Manual, should be Running

Start services (needs admin):

```powershell
# Start Spooler normally
Start-Service -Name Spooler
Set-Service -Name Spooler -StartupType Automatic

# Start other services with admin elevation
Start-Process powershell -Verb RunAs -ArgumentList '-Command', 'Start-Service -Name PrintDeviceConfigurationService; Start-Service -Name PrintNotify; Start-Service -Name PrintScanBrokerService' -Wait -WindowStyle Hidden
```

## Step 4: Check Drivers

```powershell
Get-PrinterDriver | Select-Object Name, Manufacturer, PrinterEnvironment, IsSigned | Format-Table -AutoSize
```

If driver missing, download from manufacturer website and install.

## Step 5: Check Port Configuration

```powershell
Get-PrinterPort | Select-Object Name, PortMonitor, HostAddress, PortNumber | Format-Table -AutoSize
```

USB printers should show ports like `USB001`, `USB002` with `Dynamic Print Monitor`.

## Clear Stuck Print Queue

```powershell
# Remove all pending jobs
Get-CimInstance -Class Win32_PrintJob | Remove-CimInstance -ErrorAction SilentlyContinue

# Or via command line (admin)
net stop spooler
del /Q /F /S "%systemroot%\System32\spool\PRINTERS\*.*"
net start spooler
```

## Pitfalls

- **git-bash/MSYS encoding**: PowerShell output with Chinese characters gets garbled in bash. Use `powershell -Command` directly, don't pipe through bash.
- **Admin required for service changes**: Use `Start-Process powershell -Verb RunAs` to elevate. `Set-Service` will fail with "PermissionDenied" without elevation.
- **WorkOffline vs not detected**: Printer showing "offline" in settings AND not appearing in USB device list = hardware connection issue, not software. Setting WorkOffline=False won't help if Windows can't see the device.
- **Multiple copies of same printer**: Windows may create duplicate printer entries (e.g., "Deli DL-730C(NEW) (副本 1)"). Check which port each uses.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…