We all have witnessed issue with frequent stop or start-stop behaviour of Print Spooler Service. I have documented the detailed steps for permanent fix for the same.

1-      Ensure Services Startup type is set to Automatic.

  1. Start > search for Command Prompt > Right click and run as Administrator.
  2. Type below command in CMD window.

SC CONFIG Spooler Start= Auto

 

2-      Ensure the service is in stopped state.

  1. Type below command in Command window.

Net Stop Spooler

 

3-      Take backup of the data in below directories. Execute the below commands and  rename the directories.

Rename C:\Windows\System32\spool\PRINTERS Printers-bkp

Rename C:\Windows\System32\spool\drivers Drivers-bkp

4-      Create these directories again.

MkDir C:\Windows\System32\spool\Printers

MkDir C:\Windows\System32\spool\Drivers

5-      Change ownership of the below file from Trustedinstaller to Administrators. Once Administrator has ownership and change permissions for all listed user to Full Control.

TakeOwn /A  /F c:\windows\system32\print.exe

TakeOwn /A  /F c:\windows\system32\spoolsv.exe

6-      Check permission level on these objects.

ICACLS c:\windows\system32\print.exe 

ICACLS  c:\windows\system32\spoolsv.exe

 

Output should be like below, make note of every object.

NT SERVICE\TrustedInstaller:(F)

BUILTIN\Administrators:(RX)

NT AUTHORITY\SYSTEM:(RX)

BUILTIN\Users:(RX)

7-      Change permission level of above objects to Full Access. There are chances the commands mentioned below might not work for all the objects listed there however it can be modified manually. Provided below the steps for both the methods.

 

-          Modify permission on c:\windows\system32\print.exe 

 

> Manual Method : Start Windows Explorer (Start + E) > Locate the object c:\windows\system32\print.exe > Right click > Change permissions for all listed user to Full Control.

 

> Command Method

ICACLS  c:\windows\system32\print.exe  /grant SYSTEM:f /t /q

ICACLS  c:\windows\system32\print.exe  /grant Administrator:f /t /q

ICACLS  c:\windows\system32\print.exe  /grant Users:f /t /q

-          Modify permission on c:\windows\system32\spoolsv.exe

> Manual Method : Start Windows Explorer (Start + E) > Locate the object c:\windows\system32\spoolsv.exe > Right click > Change permissions for all listed user to Full Control.

 

> Command Method

ICACLS  c:\windows\system32\spoolsv.exe  /grant SYSTEM:f /t /q

ICACLS  c:\windows\system32\spoolsv.exe  /grant Administrator:f /t /q

ICACLS  c:\windows\system32\spoolsv.exe  /grant Users:f /t /q

8-      Now the Service Print Spooler can be started successfully.

  1. Type below command in Command window.

Net Start Spooler