Solved

Script to enable auto recovery?

Posted on 2007-12-05
6
393 Views
Last Modified: 2012-06-27
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
Comment
Question by:Brent
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
6 Comments
 
LVL 7

Expert Comment

by:avatar-e
ID: 20412689
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
 
LVL 7

Expert Comment

by:avatar-e
ID: 20412698
Save to a VBS file and double click it (or put in the startup folder in the faulty print server)
0
 
LVL 8

Author Comment

by:Brent
ID: 20412756
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
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 7

Expert Comment

by:avatar-e
ID: 20413413
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
 
LVL 7

Accepted Solution

by:
avatar-e earned 500 total points
ID: 20413529
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
 
LVL 8

Author Closing Comment

by:Brent
ID: 31412873
Thanks.. not exactly what i wanted, but its actually a better solution :)
0

Featured Post

Why Off-Site Backups Are The Only Way To Go

You are probably backing up your data—but how and where? Ransomware is on the rise and there are variants that specifically target backups. Read on to discover why off-site is the way to go.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article is a collection of issues that people face from time to time and possible solutions to those issues. I hope you enjoy reading it.
Sometimes clients can lose connectivity with the Lotus Notes Domino Server, but there's not always an obvious answer as to why it happens.   Read this article to follow one of the first experiences I had with Lotus Notes on a client's machine, my…
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question