"""WizardKit: Auto Repair Tool""" # vim: sts=2 sw=2 ts=2 import os import sys os.chdir(os.path.dirname(os.path.realpath(__file__))) sys.path.append(os.getcwd()) import wk # pylint: disable=wrong-import-position # Classes REBOOT_STR = wk.std.color_string('Reboot', 'YELLOW') class MenuEntry(): # pylint: disable=too-few-public-methods """Simple class to allow cleaner code below.""" def __init__(self, name, function=None, selected=True, **kwargs): self.name = name self.details = { 'Function': function, 'Selected': selected, **kwargs, } # STATIC VARIABLES BASE_MENUS = { 'Groups': { 'Backup Settings': ( MenuEntry('Enable RegBack', 'auto_enable_regback'), MenuEntry('Enable System Restore', 'auto_system_restore_enable'), MenuEntry('Set System Restore Size', 'auto_system_restore_set_size'), MenuEntry('Create System Restore', 'auto_system_restore_create'), MenuEntry('Backup Browsers', 'auto_backup_browser_profiles'), MenuEntry('Backup Power Plans', 'auto_backup_power_plans'), MenuEntry('Reset Power Plans', 'auto_reset_power_plans'), MenuEntry('Set Custom Power Plan', 'auto_set_custom_power_plan'), MenuEntry('Backup Registry', 'auto_backup_registry'), ), 'Windows Repairs': ( MenuEntry('Disable Windows Updates', 'auto_windows_updates_disable'), MenuEntry('Reset Windows Updates', 'auto_windows_updates_reset'), MenuEntry(REBOOT_STR, 'auto_reboot'), MenuEntry('CHKDSK', 'auto_chkdsk'), MenuEntry('DISM RestoreHealth', 'auto_dism'), MenuEntry('SFC Scan', 'auto_sfc'), MenuEntry('Fix File Associations', 'auto_fix_file_associations'), MenuEntry('Clear Proxy Settings', 'auto_reset_proxy'), MenuEntry('Disable Pending Renames', 'auto_disable_pending_renames'), MenuEntry('Registry Repairs', 'auto_repair_registry'), MenuEntry('Reset UAC', 'auto_restore_uac_defaults'), MenuEntry('Reset Windows Policies', 'auto_reset_windows_policies'), ), 'Malware Cleanup': ( MenuEntry('Disable Defender Scans', 'auto_disable_defender'), MenuEntry('BleachBit', 'auto_bleachbit'), MenuEntry('HitmanPro', 'auto_hitmanpro'), MenuEntry('KVRT', 'auto_kvrt'), MenuEntry('EmsisoftCmd', 'auto_emsisoft_cmd_run'), MenuEntry(REBOOT_STR, 'auto_reboot'), MenuEntry('EmsisoftCmd (Uninstall)', 'auto_emsisoft_cmd_uninstall'), MenuEntry('Enable Defender Scans', 'auto_enable_defender'), MenuEntry('Windows Defender', 'auto_microsoft_defender'), MenuEntry('Remove Custom Power Plan', 'auto_remove_power_plan'), ), 'Manual Steps': ( MenuEntry('Malwarebytes (Install)', 'auto_mbam_install'), MenuEntry(REBOOT_STR, 'auto_reboot'), MenuEntry('AdwCleaner', 'auto_adwcleaner'), MenuEntry('Malwarebytes (Run)', 'auto_mbam_run'), MenuEntry('Malwarebytes (Uninstall)', 'auto_mbam_uninstall'), MenuEntry('UninstallView', 'auto_uninstallview'), MenuEntry('Enable Windows Updates', 'auto_windows_updates_enable'), ), }, 'Options': ( MenuEntry('Kill Explorer', selected=False), MenuEntry('Run RKill'), MenuEntry('Run TDSSKiller (once)'), MenuEntry('Sync Clock'), MenuEntry('Use Autologon', selected=False), ), 'Actions': ( MenuEntry('Load Preset'), MenuEntry('Options'), MenuEntry('Start', Separator=True), MenuEntry('Quit'), ), } PRESETS = { 'Default': { # Will be expanded at runtime using BASE_MENUS 'Options': ( 'Run RKill', 'Run TDSSKiller (once)', 'Sync Clock', ), }, 'Data Transfer (to a clean Windows install)': { 'Backup Settings': ( 'Enable RegBack', 'Enable System Restore', 'Set System Restore Size', 'Reset Power Plans', 'Set Custom Power Plan', ), 'Malware Cleanup': ( 'Disable Defender Scans', 'BleachBit', 'HitmanPro', 'KVRT', 'Enable Defender Scans', 'Remove Custom Power Plan', ), 'Manual Steps': ( 'Malwarebytes (Install)', REBOOT_STR, 'AdwCleaner', 'Malwarebytes (Run)', 'Malwarebytes (Uninstall)', 'Enable Windows Updates', ), 'Options': ( 'Run RKill', 'Run TDSSKiller (once)', 'Sync Clock', ), }, 'Light Malware/Virus Cleanup': { 'Backup Settings': ( 'Enable RegBack', 'Enable System Restore', 'Set System Restore Size', 'Create System Restore', 'Backup Browsers', 'Backup Power Plans', 'Reset Power Plans', 'Set Custom Power Plan', 'Backup Registry', ), 'Windows Repairs': ( 'Disable Windows Updates', 'Reset Windows Updates', REBOOT_STR, 'CHKDSK', 'DISM RestoreHealth', 'SFC Scan', 'Fix File Associations', 'Clear Proxy Settings', 'Disable Pending Renames', 'Registry Repairs', 'Reset UAC', 'Reset Windows Policies', ), 'Malware Cleanup': ( 'Disable Defender Scans', 'BleachBit', 'HitmanPro', 'KVRT', 'Enable Defender Scans', 'Remove Custom Power Plan', ), 'Manual Steps': ( 'Malwarebytes (Install)', REBOOT_STR, 'AdwCleaner', 'Malwarebytes (Run)', 'Malwarebytes (Uninstall)', 'UninstallView', 'Enable Windows Updates', ), 'Options': ( 'Run RKill', 'Run TDSSKiller (once)', 'Sync Clock', ), }, 'Custom': {}, # Will remain empty at runtime } if __name__ == '__main__': try: wk.repairs.win.run_auto_repairs(BASE_MENUS, PRESETS) except KeyboardInterrupt: wk.std.abort() except SystemExit: raise except: #pylint: disable=bare-except wk.std.major_exception()