How to reset the print spooler without losing the queued jobs

The standard advice for fixing a stuck print spooler in Windows is to stop the service, delete every file in the spool folder, and restart the service. That approach works but discards every queued print job, which forces every affected user to resubmit their documents. The procedure below resets the spooler while preserving the queued jobs, so that the queue resumes processing automatically once the spooler comes back online. The procedure takes five minutes and uses only the Windows command line.

Why the standard reset is destructive

The conventional fix instructs users to navigate to C:\Windows\System32\spool\PRINTERS and delete all files in the folder. Each file represents a print job in the queue, and deleting them removes the jobs permanently. Users with long print jobs queued earlier in the day lose those jobs and need to resubmit. The preservation approach below avoids this loss in most cases.

The preservation reset procedure

Five step reset that preserves queued jobs

  1. Pause the affected printer queue. Right click the printer in Devices and Printers, select Pause Printing. This stops new jobs from advancing while you work.
  2. Stop the Print Spooler service. Open Command Prompt as administrator and run the command below.
  3. Verify the spool folder contents. Open the spool folder and confirm the .SPL and .SHD files for the queued jobs are present.
  4. Restart the Print Spooler service. Run the restart command, which brings the spooler back online with the existing files still in place.
  5. Resume the printer queue. Right click the printer and uncheck Pause Printing to release the held jobs.

The commands to run

net stop spooler Stops the Print Spooler service. The queued .SPL and .SHD files remain in place.
dir C:\Windows\System32\spool\PRINTERS Lists the queued job files. Confirm files are present before proceeding.
net start spooler Restarts the Print Spooler service. The existing queued files are reloaded into the queue automatically.

Understanding what the .SPL and .SHD files contain

Each print job in the queue is represented by two files in the spool folder. The .SHD file is a small metadata file containing the print job header, including the document name, the user, the printer, and the print settings. The .SPL file is a larger spool file containing the actual print data in a printer ready format.

The two files always appear together for any complete job. A .SHD without its matching .SPL or a .SPL without its matching .SHD indicates an incomplete job that the spooler will not process. Removing only the orphaned files cleans up failed jobs without affecting healthy queued jobs, which can be useful when one specific bad job is preventing the queue from advancing.

When the preservation reset is not enough

Some spooler issues survive a simple service restart. The common scenarios are a single corrupted job that crashes the spooler each time it tries to process, a driver level issue that prevents any job from completing, or a registry corruption that affects all print queues on the machine. Each of these requires a more invasive intervention than the preservation reset above.

The next step for a corrupted single job is to identify the offending .SPL and .SHD pair by file modification time, since the bad job is usually the most recent before the stoppage. Removing only this pair leaves the rest of the queue intact and lets the spooler advance through the remaining jobs. The corrupted job needs to be resubmitted by its owner, but the rest of the queue continues without disruption.

One pattern to recognise. A spooler that crashes repeatedly within seconds of restart usually has a specific bad job at the head of the queue. Letting the spooler stop, deleting only the most recent .SPL and .SHD pair, then restarting, often resolves the loop without losing the other queued jobs.

The scripted approach for repeat occurrences

Offices that see spooler issues frequently benefit from a small batch script that performs the preservation reset on command. The script can be placed on the desktop and invoked by any user when their print queue stalls, without needing administrator help. The script does not need administrator rights if the user has sufficient permission on the local spooler service.

A minimal script contains three commands: a pause for the user to confirm, a stop on the spooler, a delay of three seconds, and a start on the spooler. The user runs the script, waits for the prompt to clear, and finds the queue processing normally. A copy of the script in a shared network folder lets IT push it to multiple machines without per machine intervention.

Preventive practices that reduce spooler stoppages

Three practices reduce the long term frequency of spooler issues. The first is keeping printer drivers up to date, since most spooler crashes trace to driver bugs that the OEM has since fixed in a later release. A quarterly review of installed drivers against the OEM portal catches outdated installations.

The second is monitoring the spool folder size. A spool folder that consistently holds gigabytes of pending jobs indicates a structural backlog rather than a temporary stall. The underlying cause is usually a printer that is offline or unreachable, and the queue building up behind it amplifies any spooler crash that does occur.

The third is configuring large jobs to spool directly to the printer rather than holding the entire job in the Windows spool first. The print direct option, available under printer properties, bypasses the spool folder for the affected printer. The setting trades a small amount of perceived speed for significantly fewer spool related issues on large jobs.

滚动至顶部