Decription :
This script moniter the service and restart the service if its in stopped state and provides alert, if service is not present it will throw no instance is present.
Note:
Run as Local System user
service_name=r'Ntfrs' # Give the exact service name
import os
import sys
from subprocess import PIPE,Popen
def alert(arg):
sys.stderr.write("%d%d%d" % (arg, arg, arg))
import ctypes
class disable_file_system_redirection:
_disable = ctypes.windll.kernel32.Wow64DisableWow64FsRedirection
_revert = ctypes.windll.kernel32.Wow64RevertWow64FsRedirection
def __enter__(self):
self.old_value = ctypes.c_long()
self.success = self._disable(ctypes.byref(self.old_value))
def __exit__(self, type, value, traceback):
if self.success:
self._revert(self.old_value)
import os
def ecmd(command):
class disable_file_system_redirection:
_disable = ctypes.windll.kernel32.Wow64DisableWow64FsRedirection
_revert = ctypes.windll.kernel32.Wow64RevertWow64FsRedirection
def __enter__(self):
self.old_value = ctypes.c_long()
self.success = self._disable(ctypes.byref(self.old_value))
def __exit__(self, type, value, traceback):
if self.success:
self._revert(self.old_value)
with disable_file_system_redirection():
obj = Popen(command, shell = True, stdout = PIPE, stderr = PIPE)
out, err = obj.communicate()
ret=obj.returncode
if ret==0:
if out:
return out.strip()
else:
return ret
else:
if err:
return err.strip()
else:
return ret
check_win = ecmd(r'systeminfo | findstr /B /C:"OS Name"')
if "Server" in check_win:
with disable_file_system_redirection():
#y=os.popen("wmic service "+service_name+" get state").read()
process=Popen("wmic service "+service_name+" get state",stdout=PIPE,stderr=PIPE)
res,err=process.communicate()
if err:
print err
alert(0)
else:
if "Stopped" in res:
alert(1)
try:
print 'The service '+service_name+' was already in stopped state'
print 'So starting the '+service_name+ 'service ........'
x=os.popen('net start '+service_name).read()
print 'The Service '+service_name+' has been successfully started'
except Exception as err:
print "Unable to start the Service" +service_name+'due to below error'
print err
else:
alert(0)
print "The service "+service_name+' was already in running state'
else:
print "This Procedure only works on Server Machine"
Comments