π ~1 min read
Table of contents
Symptom & Impact
The Print Spooler service on Windows Server 2019 consumes increasing memory until it crashes or is killed by the system, halting all print jobs. Network printer queues become unresponsive and pending jobs accumulate on the print server.
Environment & Reproduction
Reproduce on print servers hosting many third-party drivers or large jobs. Track spoolsv.exe working set over time and read the System log.
Get-Service -Name spooler
Get-WinEvent -LogName System -MaxEvents 40
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10
Root Cause Analysis
Causes include a leaking print monitor or third-party driver, oversized spool files, and ACL drift on the spool folder preventing cleanup.
Quick Triage
Sample the spoolsv.exe memory footprint and queue depth before applying any change.
sc.exe query spooler
Get-Service -Name spooler | Select-Object Status,StartType
Get-EventLog -LogName System -Newest 30 | Where-Object {$_.Source -match 'spooler'}
Step-by-Step Diagnosis
Capture process memory growth, list installed print monitors, and read Spooler error events.
Get-WinEvent -LogName System -MaxEvents 50 | Where-Object {$_.ProviderName -match 'spooler'} | Select TimeCreated,Id,LevelDisplayName,Message
sc.exe qfailure spooler
sfc /verifyonly

Solution β Primary Fix
Restart Spooler, clear the spool folder of orphaned jobs, and remove or update the suspect print driver to a vendor-supported build.
Still having issues? Our IT Solutions & Services team can diagnose and resolve this for you. Get in touch for a free consultation.
Restart-Service -Name spooler -Force
Get-Service -Name spooler | Select-Object Status,StartType
Get-WinEvent -LogName System -MaxEvents 20 | Where-Object {$_.ProviderName -match 'spooler'}

Solution β Alternative Approaches
Isolate the failing driver into a separate driver isolation group so future leaks no longer crash the host service.
sc.exe config spooler start= auto
sc.exe failure spooler reset= 86400 actions= restart/60000/restart/60000/run/1000
Restart-Service -Name spooler -Force
Verification & Acceptance Criteria
Spooler runs steadily, working set stays under threshold, and print jobs complete without queue stalls.
Get-Service -Name spooler
Get-WinEvent -LogName System -MaxEvents 25 | Where-Object {$_.ProviderName -match 'spooler' -and $_.LevelDisplayName -eq 'Error'}
Test-NetConnection -ComputerName localhost -Port
Rollback Plan
Roll back the most recent driver install and restore the prior driver package on the host.
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 5
wbadmin get versions
# Restore previous configuration export if available
Prevention & Hardening
Standardise on signed v4 drivers, enable driver isolation, and audit installed monitors regularly.
Get-Service -Name spooler | Export-Clixml C:/Temp/spooler-baseline.xml
Get-WinEvent -LogName System -MaxEvents 50 > C:/Temp/spooler-events.txt
Get-ScheduledTask | Where-Object {$_.TaskName -match 'spooler'}
Related Errors & Cross-Refs
Related to events 808, 23, and 372 from the PrintService channel.
Related tutorial: View the step-by-step tutorial for Windows Server 2019.
View all Windows Server 2019 tutorials on the Tutorials Hub β
Browse all common problems & solutions on the Tutorials Hub.
References & Further Reading
Microsoft Learn references for Print Spooler maintenance and driver isolation on Windows Server 2019.
Need Expert Help?
If you cannot resolve this yourself, our team offers hands-on Server Management, Managed IT Services, and flexible Support Plans. Contact us today β we respond within one business day.