This Script is used to monitor MSExchangeFrontEndTransport Services and raise alert if the service has been stopped.
service_name=['MSExchangeFrontEndTransport' ]
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)
ale=0
import os
import sys
def alert(arg):
sys.stderr.write("%d%d%d" % (arg, arg, arg))
def serv(srvc_name):
with disable_file_system_redirection():
print os.popen("sc config "+srvc_name+" start=auto").read()
y=os.popen("wmic service "+srvc_name+" get state").read()
if "Stopped" in y:
ale+=1
try:
print 'The service '+srvc_name+' is in stopped state'
except:
pass
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:
for i in service_name:
serv(i)
if ale!=0:
alert(1)
else:
alert(0)
print "No Specified services has been stopped"
else:
print "This Procedure only works on Server Machine"
Comments