# Wizard Kit: System Diagnostics import os import sys # Init os.chdir(os.path.dirname(os.path.realpath(__file__))) sys.path.append(os.getcwd()) from functions.browsers import * from functions.diags import * from functions.info import * from functions.product_keys import * from functions.repairs import * init_global_vars() os.system('title {}: System Diagnostics Tool'.format(KIT_NAME_FULL)) global_vars['LogFile'] = r'{LogDir}\System Diagnostics.log'.format( **global_vars) D7_MODE = 'd7mode' in sys.argv ERRORS = 0 # Static Variables BLEACH_BIT_CLEANERS = { 'Applications': ( 'adobe_reader.cache', 'adobe_reader.tmp', 'amule.tmp', 'flash.cache', 'gimp.tmp', 'hippo_opensim_viewer.cache', 'java.cache', 'libreoffice.cache', 'liferea.cache', 'miro.cache', 'openofficeorg.cache', 'pidgin.cache', 'secondlife_viewer.Cache', 'thunderbird.cache', 'vuze.backup_files', 'vuze.cache', 'vuze.tmp', 'yahoo_messenger.cache', ), 'Browsers': ( 'chromium.cache', 'chromium.current_session', 'chromium.history', 'firefox.cache', 'firefox.download_history', 'firefox.session_restore', 'firefox.url_history', 'google_chrome.cache', 'google_chrome.history', 'google_chrome.session', 'google_earth.temporary_files', 'google_toolbar.search_history', 'internet_explorer.history', 'internet_explorer.temporary_files', 'opera.cache', 'opera.current_session', 'opera.download_history', 'opera.url_history', 'safari.cache', 'safari.history', 'seamonkey.cache', 'seamonkey.download_history', 'seamonkey.history', ), 'System': ( 'system.clipboard', 'system.tmp', 'winapp2_windows.jump_lists', 'winapp2_windows.ms_search', 'windows_explorer.run', 'windows_explorer.search_history', 'windows_explorer.thumbnails', ), } def check_result(result, other_results): """Check result for warnings and errors.""" if not result['CS']: for warning in other_results.get('Warning', {}).keys(): if warning in str(result['Error']): # Ignore warnings and repair statements return # Error is not a warning ERRORS += 1 if __name__ == '__main__': try: stay_awake() clear_screen() print_info('{}: System Diagnostics Tool\n'.format(KIT_NAME_FULL)) ticket_number = get_ticket_number() other_results = { 'Error': { 'CalledProcessError': 'Unknown Error', 'FileNotFoundError': 'File not found', }, 'Warning': { 'GenericRepair': 'Repaired', 'UnsupportedOSError': 'Unsupported OS', }} if ENABLED_TICKET_NUMBERS: print_info('Starting System Diagnostics for Ticket #{}\n'.format( ticket_number)) # Sanitize Environment print_info('Sanitizing Environment') if not D7_MODE: try_and_print(message='Running RKill...', function=run_rkill, cs='Done', other_results=other_results) try_and_print(message='Running TDSSKiller...', function=run_tdsskiller, cs='Done', other_results=other_results) # Re-run if earlier process was stopped. stay_awake() # Start diags if not D7_MODE: print_info('Starting Background Scans') check_connection() try_and_print(message='Running HitmanPro...', function=run_hitmanpro, cs='Started', other_results=other_results) try_and_print(message='Running Autoruns...', function=run_autoruns, cs='Started', other_results=other_results) # OS Health Checks print_info('OS Health Checks') result = try_and_print( message='CHKDSK ({SYSTEMDRIVE})...'.format(**global_vars['Env']), function=run_chkdsk, other_results=other_results) check_result(result, other_results) result = try_and_print(message='SFC scan...', function=run_sfc_scan, other_results=other_results) check_result(result, other_results) if D7_MODE: result = try_and_print(message='DISM RestoreHealth...', function=run_dism, other_results=other_results, repair=True) check_result(result, other_results) else: try_and_print(message='DISM CheckHealth...', function=run_dism, other_results=other_results, repair=False) if D7_MODE: # Archive all browsers for all users archive_all_users() else: # Scan for supported browsers print_info('Scanning for browsers') scan_for_browsers() # Run BleachBit cleaners print_info('BleachBit Cleanup') for k, v in sorted(BLEACH_BIT_CLEANERS.items()): try_and_print(message=' {}...'.format(k), function=run_bleachbit, cs='Done', other_results=other_results, cleaners=v, preview=bool(not D7_MODE)) # Export system info print_info('Backup System Information') try_and_print(message='AIDA64 reports...', function=run_aida64, cs='Done', other_results=other_results) if not D7_MODE: backup_browsers() try_and_print(message='File listing...', function=backup_file_list, cs='Done', other_results=other_results) try_and_print(message='Power plans...', function=backup_power_plans, cs='Done') try_and_print(message='Product Keys...', function=run_produkey, cs='Done', other_results=other_results) if not D7_MODE: try_and_print(message='Registry...', function=backup_registry, cs='Done', other_results=other_results) # Summary if not D7_MODE: print_info('Summary') try_and_print(message='Operating System:', function=show_os_name, ns='Unknown', silent_function=False) try_and_print(message='Activation:', function=show_os_activation, ns='Unknown', silent_function=False) try_and_print(message='Installed RAM:', function=show_installed_ram, ns='Unknown', silent_function=False) show_free_space() try_and_print(message='Temp Size:', function=show_temp_files_size, silent_function=False) try_and_print(message='Installed Antivirus:', function=get_installed_antivirus, ns='Unknown', other_results=other_results, print_return=True) try_and_print(message='Installed Office:', function=get_installed_office, ns='Unknown', other_results=other_results, print_return=True) try_and_print(message='Product Keys:', function=get_product_keys, ns='Unknown', print_return=True) # User data if not D7_MODE: print_info('User Data') try: show_user_data_summary() except Exception: print_error(' Unknown error.') # Done if not D7_MODE or ERRORS > 0: print_standard('\nDone.') pause('Press Enter to exit...') exit_script() except SystemExit: pass except: major_exception() # vim: sts=4 sw=4 ts=4