• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 399
  • Last Modified:

Script to enable auto recovery?

We have a few printers that are causing the print spooler service on computers around the company to stop.

Is there a way to script a logon file that can set the recovery options under the print spooler service to automatically restart if failed and set the option for delay to 3 minutes?

0
Brent
Asked:
Brent
  • 4
  • 2
1 Solution
 
avatar-eCommented:
This script keeps prints spooler alive, checking every 3 minutes
' ReStartService.vbs
' Sample script to Stop or Start a Service
' www.computerperformance.co.uk/
' Created by Guy Thomas December 2005 Version 2.4
' -------------------------------------------------------' 
Option Explicit
Dim objWMIService, objItem, objService
Dim colListOfServices, strComputer, strService, intSleep 
strComputer = "."
intSleep = 180000
'WScript.Echo " Click OK, then wait " & intSleep & " milliseconds" 
 
'On Error Resume Next
' NB strService is case sensitive.
strService = " 'Spooler' "
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery _
("Select * from Win32_Service Where Name ="_
& strService & " ")
 
While true
For Each objService in colListOfServices
objService.StartService()
WSCript.Sleep intSleep
Next 
wend
WScript.Echo "Your "& strService & " service has Started" 
WScript.Quit
' End of Example WMI script to Start / Stop services

Open in new window

0
 
avatar-eCommented:
Save to a VBS file and double click it (or put in the startup folder in the faulty print server)
0
 
BrentDevOpsAuthor Commented:
Thats a nifty script... question though.

I would be using this for computers in which users login.   If its apart of the login script, wouldnt it cause mutliple instances of this script to run?
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
avatar-eCommented:
You can put the script just in the admin account to start it once, on the startup folder in start menu / programs. (If you start as admin first).

0
 
avatar-eCommented:
Anyways I modified the code a bit, now only last instance will survive, so you can run many time as you like without the worry of having thousand instances running
' ReStartService.vbs
' Sample script to Stop or Start a Service
' www.computerperformance.co.uk/
' Created by Guy Thomas December 2005 Version 2.4
' -------------------------------------------------------' 
Option Explicit
Dim WshShell
set WshShell = CreateObject("wscript.Shell")
Dim objWMIService, objItem, objService
Dim colListOfServices, strComputer, strService, intSleep 
strComputer = "."
intSleep = 180000
'On Error Resume Next
strService = " 'Spooler' "
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery _
("Select * from Win32_Service Where Name ="_
& strService & " ")
 
Dim myProcId
randomize
myProcId = "SpoolerAlive_" & Int(Rnd()*99999) & "_" & Int(Rnd()*99999)
Dim lastProcessId
lastProcessId = myProcId
Dim myReg 
myReg = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Spooler_alive_last"
WshShell.RegWrite myReg, myProcId
 
While lastProcessId = myProcId
	lastProcessId = ""
	For Each objService in colListOfServices
		objService.StartService()
		WSCript.Sleep intSleep
	Next 
	lastProcessId =WshShell.RegRead(myReg)
wend
WScript.Quit
' End of Example WMI script to Start / Stop services

Open in new window

0
 
BrentDevOpsAuthor Commented:
Thanks.. not exactly what i wanted, but its actually a better solution :)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now