Skip to main content

Windows Druckserver -

Windows Druckserver: festklebende Druckaufträge entfernen (PowerShell)

Ziel: Druckjobs löschen, die selbst nach einem Server-Neustart wieder auftauchen.
Wichtig: Die “Keule”-Variante stoppt den Spooler. Währenddessen druckt niemand.


Variante A: Komplett-Reset (alle Druckjobs löschen)

  1. PowerShell als Administrator öffnen
  2. Ausführen:
# Stoppt den Druckspooler (Druckbetrieb steht in der Zeit)
Stop-Service -Name Spooler -Force

# Löscht alle Spool-Dateien (Jobs) vom Printserver
Remove-Item -Path "$env:SystemRoot\System32\spool\PRINTERS\*" -Force -ErrorAction SilentlyContinue

# Startet den Druckspooler neu
Start-Service -Name Spooler

# Status prüfen
Get-Service -Name Spooler | Select-Object Name, Status

Erwartung: Warteschlangen sind danach leer, weil die .spl/.shd-Spoolfiles weg sind.


Variante B: Nur eine bestimmte Drucker-Queue leeren (gezielt)

Wenn du nicht alles löschen willst, sondern nur einen Drucker:

# Anpassen:
$ServerName  = "DEIN-PRINTSERVER"
$PrinterName = "DEIN-DRUCKERNAME"

# Alle Jobs in der Queue anzeigen
Get-PrintJob -ComputerName $ServerName -PrinterName $PrinterName |
  Select-Object ID, DocumentName, UserName, SubmittedTime, Size

# Alle Jobs in der Queue löschen
Get-PrintJob -ComputerName $ServerName -PrinterName $PrinterName |
  ForEach-Object {
    Remove-PrintJob -ComputerName $ServerName -PrinterName $PrinterName -ID $_.ID
  }

Wenn Jobs bei “Deleting…” hängen bleiben: Variante A benutzen (Spooler stoppen + Spoolfiles löschen).


Quick-Checks, falls Jobs “wie von selbst” wiederkommen

  • Client schickt den Job erneut: Der Job ist weg, wird aber sofort neu gesendet (z.B. User druckt erneut, App hängt, Print-to-PDF-Loop).
  • Treiber/Queue kaputt: Testweise anderen/aktuellen Treiber (z.B. Hersteller-Universal) verwenden.
  • AV/EDR blockiert Spool-Dateien: Ausnahme für C:\Windows\System32\spool\PRINTERS prüfen.

Optional: Ereignisprotokoll für Print-Probleme (lesen)

Praktisch, wenn du sehen willst, was beim Spoolen schief läuft:

# Letzte 50 PrintService-Events anzeigen (Operational Log)
Get-WinEvent -LogName "Microsoft-Windows-PrintService/Operational" -MaxEvents 50 |
  Select-Object TimeCreated, Id, LevelDisplayName, Message |
  Format-List