Alert if the endpoints has pending reboots

A Certain operation will not be completed to the fullest without rebooting the system, sometimes we would have skipped the reboot process.In such cases, the reboots will be queued.

we would like to share a script which will monitor if there is any pending reboot in an endpoint and alert will be generated if available.

Please refer the script.



import os 
import sys 
import _winreg
import ctypes 

def alert(arg): 
    sys.stderr.write("%d%d%d" % (arg, arg, arg)) 

# Please use "alert(1)" to turn on the monitor(trigger an alert) 
# Please use "alert(0)" to turn off the monitor(disable an alert) 
# Please do not change above block and write your script below 

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():            
    import _winreg;
    try:
        key = getattr(_winreg,"HKEY_LOCAL_MACHINE")
        subkey = _winreg.OpenKey(key, "SYSTEM\CurrentControlSet\Control\Session Manager" )
        (value, type) = _winreg.QueryValueEx(subkey,"PendingFileRenameOperations")
        if value != "":
            print "Reboot required"
            alert(1)
        elif value == "":
            print "No reboot required "
            alert(0)
    except:
        print "No reboot required"


OUTPUT:

20170526-Alert_If_Reboot_Pending.json (1.96 KB)