Moved to a unified system setup script
* Replaces: * Install SW Bundle * New System Setup * User Checklist * System Checklist
This commit is contained in:
parent
3007c22c41
commit
b95586a590
7 changed files with 397 additions and 412 deletions
|
|
@ -91,6 +91,12 @@ class SecureBootNotAvailError(Exception):
|
|||
class SecureBootUnknownError(Exception):
|
||||
pass
|
||||
|
||||
class WindowsOutdatedError(Exception):
|
||||
pass
|
||||
|
||||
class WindowsUnsupportedError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
# General functions
|
||||
def abort(show_prompt=True):
|
||||
|
|
|
|||
|
|
@ -334,6 +334,10 @@ def open_device_manager():
|
|||
popen_program(['mmc', 'devmgmt.msc'])
|
||||
|
||||
|
||||
def open_speedtest():
|
||||
popen_program(['start', '', 'https://fast.com'], shell=True)
|
||||
|
||||
|
||||
def open_windows_activation():
|
||||
popen_program(['slui'])
|
||||
|
||||
|
|
|
|||
|
|
@ -1,160 +0,0 @@
|
|||
# Wizard Kit: New system setup
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Init
|
||||
sys.path.append(os.path.dirname(os.path.realpath(__file__)))
|
||||
from functions.activation import *
|
||||
from functions.browsers import *
|
||||
from functions.cleanup import *
|
||||
from functions.info import *
|
||||
from functions.product_keys import *
|
||||
from functions.setup import *
|
||||
from functions.sw_diags import *
|
||||
init_global_vars()
|
||||
os.system('title {}: New System Setup'.format(KIT_NAME_FULL))
|
||||
set_log_file('New System Setup.log')
|
||||
|
||||
if __name__ == '__main__':
|
||||
other_results = {
|
||||
'Error': {
|
||||
'BIOSKeyNotFoundError': 'BIOS key not found',
|
||||
'CalledProcessError': 'Unknown Error',
|
||||
'FileNotFoundError': 'File not found',
|
||||
'GenericError': 'Unknown Error',
|
||||
'SecureBootDisabledError': 'Disabled',
|
||||
},
|
||||
'Warning': {
|
||||
'GenericRepair': 'Repaired',
|
||||
'NoProfilesError': 'No profiles found',
|
||||
'NotInstalledError': 'Not installed',
|
||||
'OSInstalledLegacyError': 'OS installed Legacy',
|
||||
'SecureBootNotAvailError': 'Not available',
|
||||
'SecureBootUnknownError': 'Unknown',
|
||||
'UnsupportedOSError': 'Unsupported OS',
|
||||
}}
|
||||
try:
|
||||
stay_awake()
|
||||
clear_screen()
|
||||
|
||||
# Check installed OS
|
||||
if os_is_unsupported(show_alert=False):
|
||||
print_warning('OS version not supported by this script')
|
||||
if not ask('Continue anyway? (NOT RECOMMENDED)'):
|
||||
abort()
|
||||
|
||||
# Install Adobe Reader?
|
||||
answer_adobe_reader = ask('Install Adobe Reader?')
|
||||
|
||||
# Install LibreOffice?
|
||||
answer_libreoffice = ask('Install LibreOffice?')
|
||||
|
||||
# Install MSE?
|
||||
if global_vars['OS']['Version'] == '7':
|
||||
answer_mse = ask('Install MSE?')
|
||||
else:
|
||||
answer_mse = False
|
||||
|
||||
# Install software
|
||||
print_info('Installing Programs')
|
||||
install_vcredists()
|
||||
if answer_adobe_reader:
|
||||
try_and_print(message='Adobe Reader DC...',
|
||||
function=install_adobe_reader, other_results=other_results)
|
||||
result = try_and_print(
|
||||
message='Ninite bundle...',
|
||||
function=install_ninite_bundle, cs='Started',
|
||||
mse=answer_mse, libreoffice=answer_libreoffice,
|
||||
other_results=other_results)
|
||||
for proc in result['Out']:
|
||||
# Wait for all processes to finish
|
||||
proc.wait()
|
||||
|
||||
# Scan for supported browsers
|
||||
print_info('Scanning for browsers')
|
||||
scan_for_browsers()
|
||||
|
||||
# Install extensions
|
||||
print_info('Installing Extensions')
|
||||
try_and_print(message='Classic Shell skin...',
|
||||
function=install_classicstart_skin,
|
||||
other_results=other_results)
|
||||
try_and_print(message='Google Chrome extensions...',
|
||||
function=install_chrome_extensions)
|
||||
try_and_print(message='Mozilla Firefox extensions...',
|
||||
function=install_firefox_extensions,
|
||||
other_results=other_results)
|
||||
|
||||
# Configure software
|
||||
print_info('Configuring programs')
|
||||
install_adblock()
|
||||
if global_vars['OS']['Version'] == '10':
|
||||
try_and_print(message='ClassicStart...',
|
||||
function=config_classicstart, cs='Done')
|
||||
try_and_print(message='Explorer (user)...',
|
||||
function=config_explorer_user, cs='Done')
|
||||
|
||||
# Configure system
|
||||
print_info('Configuring system')
|
||||
if global_vars['OS']['Version'] == '10':
|
||||
try_and_print(message='Explorer (system)...',
|
||||
function=config_explorer_system, cs='Done')
|
||||
try_and_print(message='Windows Updates...',
|
||||
function=config_windows_updates, cs='Done')
|
||||
try_and_print(message='Updating Clock...',
|
||||
function=update_clock, cs='Done')
|
||||
|
||||
# Restart Explorer
|
||||
try_and_print(message='Restarting Explorer...',
|
||||
function=restart_explorer, cs='Done')
|
||||
|
||||
# Summary
|
||||
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)
|
||||
if (not windows_is_activated()
|
||||
and global_vars['OS']['Version'] in ('8', '8.1', '10')):
|
||||
try_and_print(message='BIOS Activation:',
|
||||
function=activate_with_bios,
|
||||
other_results=other_results)
|
||||
try_and_print(message='Secure Boot Status:',
|
||||
function=check_secure_boot_status, other_results=other_results)
|
||||
try_and_print(message='Installed RAM:',
|
||||
function=show_installed_ram, ns='Unknown', silent_function=False)
|
||||
show_free_space()
|
||||
try_and_print(message='Installed Antivirus:',
|
||||
function=get_installed_antivirus, ns='Unknown',
|
||||
other_results=other_results, print_return=True)
|
||||
|
||||
# Play audio, show devices, open Windows updates, and open Activation
|
||||
try_and_print(message='Opening Device Manager...',
|
||||
function=open_device_manager, cs='Started')
|
||||
try_and_print(message='Opening HWiNFO (Sensors)...',
|
||||
function=run_hwinfo_sensors, cs='Started', other_results=other_results)
|
||||
try_and_print(message='Opening Windows Updates...',
|
||||
function=open_windows_updates, cs='Started')
|
||||
if not windows_is_activated():
|
||||
try_and_print(message='Opening Windows Activation...',
|
||||
function=open_windows_activation, cs='Started')
|
||||
sleep(3)
|
||||
try_and_print(message='Running XMPlay...',
|
||||
function=run_xmplay, cs='Started', other_results=other_results)
|
||||
try:
|
||||
check_secure_boot_status(show_alert=True)
|
||||
except:
|
||||
# Only trying to open alert message boxes
|
||||
pass
|
||||
|
||||
# Done
|
||||
print_standard('\nDone.')
|
||||
pause('Press Enter to exit...')
|
||||
exit_script()
|
||||
except SystemExit as sys_exit:
|
||||
exit_script(sys_exit.code)
|
||||
except:
|
||||
major_exception()
|
||||
|
||||
# vim: sts=2 sw=2 ts=2
|
||||
|
|
@ -1,35 +1,20 @@
|
|||
# Wizard Kit: Settings - Launchers
|
||||
'''Wizard Kit: Settings - Launchers'''
|
||||
# pylint: disable=line-too-long
|
||||
# vim: sts=2 sw=2 ts=2
|
||||
|
||||
LAUNCHERS = {
|
||||
r'(Root)': {
|
||||
'Activate Windows': {
|
||||
'L_TYPE': 'PyScript',
|
||||
'L_PATH': 'Scripts',
|
||||
'L_ITEM': 'activate.py',
|
||||
'L_ELEV': 'True',
|
||||
},
|
||||
'New System Setup': {
|
||||
'L_TYPE': 'PyScript',
|
||||
'L_PATH': 'Scripts',
|
||||
'L_ITEM': 'new_system_setup.py',
|
||||
'L_ELEV': 'True',
|
||||
},
|
||||
'System Checklist': {
|
||||
'L_TYPE': 'PyScript',
|
||||
'L_PATH': 'Scripts',
|
||||
'L_ITEM': 'system_checklist.py',
|
||||
'L_ELEV': 'True',
|
||||
},
|
||||
'System Diagnostics': {
|
||||
'L_TYPE': 'PyScript',
|
||||
'L_PATH': 'Scripts',
|
||||
'L_ITEM': 'system_diagnostics.py',
|
||||
'L_ELEV': 'True',
|
||||
},
|
||||
'User Checklist': {
|
||||
'System Setup': {
|
||||
'L_TYPE': 'PyScript',
|
||||
'L_PATH': 'Scripts',
|
||||
'L_ITEM': 'user_checklist.py',
|
||||
'L_ITEM': 'system_setup.py',
|
||||
'L_ELEV': 'True',
|
||||
},
|
||||
},
|
||||
r'Data Recovery': {
|
||||
|
|
@ -55,6 +40,7 @@ LAUNCHERS = {
|
|||
},
|
||||
},
|
||||
r'Data Transfers': {
|
||||
# pylint: disable=bad-continuation
|
||||
'FastCopy (as ADMIN)': {
|
||||
'L_TYPE': 'Executable',
|
||||
'L_PATH': 'FastCopy',
|
||||
|
|
@ -257,7 +243,7 @@ LAUNCHERS = {
|
|||
'L_TYPE': 'Executable',
|
||||
'L_PATH': 'erunt',
|
||||
'L_ITEM': 'ERUNT.EXE',
|
||||
'L_ARGS': '%client_dir%\Backups\Registry\%iso_date% sysreg curuser otherusers',
|
||||
'L_ARGS': r'%client_dir%\Backups\Registry\%iso_date% sysreg curuser otherusers',
|
||||
'L_ELEV': 'True',
|
||||
'Extra Code': [
|
||||
r'call "%bin%\Scripts\init_client_dir.cmd" /Logs',
|
||||
|
|
@ -287,13 +273,13 @@ LAUNCHERS = {
|
|||
r'Drivers': {
|
||||
'Intel RST (Current Release)': {
|
||||
'L_TYPE': 'Executable',
|
||||
'L_PATH': '_Drivers\Intel RST',
|
||||
'L_PATH': r'_Drivers\Intel RST',
|
||||
'L_ITEM': 'SetupRST_17.2.exe',
|
||||
'L_7ZIP': 'SetupRST_17.2.exe',
|
||||
},
|
||||
'Intel RST (Previous Releases)': {
|
||||
'L_TYPE': 'Folder',
|
||||
'L_PATH': '_Drivers\Intel RST',
|
||||
'L_PATH': r'_Drivers\Intel RST',
|
||||
'L_ITEM': '.',
|
||||
'L_NCMD': 'True',
|
||||
},
|
||||
|
|
@ -309,7 +295,7 @@ LAUNCHERS = {
|
|||
},
|
||||
'Snappy Driver Installer Origin': {
|
||||
'L_TYPE': 'Executable',
|
||||
'L_PATH': '_Drivers\SDIO',
|
||||
'L_PATH': r'_Drivers\SDIO',
|
||||
'L_ITEM': 'SDIO.exe',
|
||||
},
|
||||
},
|
||||
|
|
@ -435,6 +421,12 @@ LAUNCHERS = {
|
|||
},
|
||||
},
|
||||
r'Misc': {
|
||||
'Activate Windows': {
|
||||
'L_TYPE': 'PyScript',
|
||||
'L_PATH': 'Scripts',
|
||||
'L_ITEM': 'activate.py',
|
||||
'L_ELEV': 'True',
|
||||
},
|
||||
'Cleanup CBS Temp Files': {
|
||||
'L_TYPE': 'PyScript',
|
||||
'L_PATH': 'Scripts',
|
||||
|
|
@ -452,6 +444,20 @@ LAUNCHERS = {
|
|||
'L_PATH': 'ConEmu',
|
||||
'L_ITEM': 'ConEmu.exe',
|
||||
},
|
||||
'Disable Windows Updates': {
|
||||
'L_TYPE': 'PyScript',
|
||||
'L_PATH': 'Scripts',
|
||||
'L_ITEM': 'windows_updates.py',
|
||||
'L_ARGS': '--disable',
|
||||
'L_ELEV': 'True',
|
||||
},
|
||||
'Enable Windows Updates': {
|
||||
'L_TYPE': 'PyScript',
|
||||
'L_PATH': 'Scripts',
|
||||
'L_ITEM': 'windows_updates.py',
|
||||
'L_ARGS': '--enable',
|
||||
'L_ELEV': 'True',
|
||||
},
|
||||
'Enter SafeMode': {
|
||||
'L_TYPE': 'PyScript',
|
||||
'L_PATH': 'Scripts',
|
||||
|
|
@ -491,7 +497,7 @@ LAUNCHERS = {
|
|||
'L_TYPE': 'Executable',
|
||||
'L_PATH': 'XMPlay',
|
||||
'L_ITEM': 'xmplay.exe',
|
||||
'L_ARGS': '"%bin%\XMPlay\music.7z"',
|
||||
'L_ARGS': r'"%bin%\XMPlay\music.7z"',
|
||||
},
|
||||
},
|
||||
r'Repairs': {
|
||||
|
|
@ -551,7 +557,7 @@ LAUNCHERS = {
|
|||
'L_TYPE': 'Executable',
|
||||
'L_PATH': 'RKill',
|
||||
'L_ITEM': 'RKill.exe',
|
||||
'L_ARGS': '-s -l %log_dir%\Tools\RKill.log',
|
||||
'L_ARGS': r'-s -l %log_dir%\Tools\RKill.log',
|
||||
'L_ELEV': 'True',
|
||||
'Extra Code': [
|
||||
r'call "%bin%\Scripts\init_client_dir.cmd" /Logs',
|
||||
|
|
@ -594,5 +600,3 @@ LAUNCHERS = {
|
|||
|
||||
if __name__ == '__main__':
|
||||
print("This file is not meant to be called directly.")
|
||||
|
||||
# vim: sts=2 sw=2 ts=2
|
||||
|
|
|
|||
|
|
@ -1,133 +0,0 @@
|
|||
# Wizard Kit: System Checklist
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Init
|
||||
sys.path.append(os.path.dirname(os.path.realpath(__file__)))
|
||||
from functions.activation import *
|
||||
from functions.cleanup import *
|
||||
from functions.info import *
|
||||
from functions.product_keys import *
|
||||
from functions.setup import *
|
||||
from functions.sw_diags import *
|
||||
init_global_vars()
|
||||
os.system('title {}: System Checklist Tool'.format(KIT_NAME_FULL))
|
||||
set_log_file('System Checklist.log')
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
stay_awake()
|
||||
clear_screen()
|
||||
print_info('{}: System Checklist Tool\n'.format(KIT_NAME_FULL))
|
||||
ticket_number = get_ticket_number()
|
||||
other_results = {
|
||||
'Error': {
|
||||
'BIOSKeyNotFoundError': 'BIOS key not found',
|
||||
'CalledProcessError': 'Unknown Error',
|
||||
'FileNotFoundError': 'File not found',
|
||||
'GenericError': 'Unknown Error',
|
||||
'SecureBootDisabledError': 'Disabled',
|
||||
},
|
||||
'Warning': {
|
||||
'OSInstalledLegacyError': 'OS installed Legacy',
|
||||
'SecureBootNotAvailError': 'Not available',
|
||||
'SecureBootUnknownError': 'Unknown',
|
||||
}}
|
||||
if ENABLED_TICKET_NUMBERS:
|
||||
print_info('Starting System Checklist for Ticket #{}\n'.format(
|
||||
ticket_number))
|
||||
|
||||
# Configure
|
||||
print_info('Configure')
|
||||
if global_vars['OS']['Version'] == '10':
|
||||
try_and_print(message='Explorer...',
|
||||
function=config_explorer_system, cs='Done')
|
||||
try_and_print(message='Windows Updates...',
|
||||
function=config_windows_updates, cs='Done')
|
||||
try_and_print(message='Updating Clock...',
|
||||
function=update_clock, cs='Done')
|
||||
|
||||
# Restart Explorer
|
||||
try_and_print(message='Restarting Explorer...',
|
||||
function=restart_explorer, cs='Done')
|
||||
|
||||
# Cleanup
|
||||
print_info('Cleanup')
|
||||
try_and_print(message='AdwCleaner...',
|
||||
function=cleanup_adwcleaner, cs='Done', other_results=other_results)
|
||||
try_and_print(message='Desktop...',
|
||||
function=cleanup_desktop, cs='Done')
|
||||
try_and_print(message='{}...'.format(KIT_NAME_FULL),
|
||||
function=delete_empty_folders, cs='Done',
|
||||
folder_path=global_vars['ClientDir'])
|
||||
|
||||
# Export system info
|
||||
print_info('Backup System Information')
|
||||
try_and_print(message='AIDA64 reports...',
|
||||
function=run_aida64, cs='Done', other_results=other_results)
|
||||
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...', other_results=other_results,
|
||||
function=run_produkey, cs='Done')
|
||||
try_and_print(message='Registry...',
|
||||
function=backup_registry, cs='Done', other_results=other_results)
|
||||
|
||||
# User data
|
||||
print_info('User Data')
|
||||
show_user_data_summary()
|
||||
|
||||
# Summary
|
||||
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)
|
||||
if (not windows_is_activated()
|
||||
and global_vars['OS']['Version'] in ('8', '8.1', '10')):
|
||||
try_and_print(message='BIOS Activation:',
|
||||
function=activate_with_bios,
|
||||
other_results=other_results)
|
||||
try_and_print(message='Secure Boot Status:',
|
||||
function=check_secure_boot_status, other_results=other_results)
|
||||
try_and_print(message='Installed RAM:',
|
||||
function=show_installed_ram, ns='Unknown', silent_function=False)
|
||||
show_free_space()
|
||||
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)
|
||||
|
||||
# Play audio, show devices, open Windows updates, and open Activation
|
||||
try_and_print(message='Opening Device Manager...',
|
||||
function=open_device_manager, cs='Started')
|
||||
try_and_print(message='Opening HWiNFO (Sensors)...',
|
||||
function=run_hwinfo_sensors, cs='Started', other_results=other_results)
|
||||
try_and_print(message='Opening Windows Updates...',
|
||||
function=open_windows_updates, cs='Started')
|
||||
if not windows_is_activated():
|
||||
try_and_print(message='Opening Windows Activation...',
|
||||
function=open_windows_activation, cs='Started')
|
||||
sleep(3)
|
||||
try_and_print(message='Running XMPlay...',
|
||||
function=run_xmplay, cs='Started', other_results=other_results)
|
||||
try:
|
||||
check_secure_boot_status(show_alert=True)
|
||||
except:
|
||||
# Only trying to open alert message boxes
|
||||
pass
|
||||
|
||||
# Done
|
||||
print_standard('\nDone.')
|
||||
pause('Press Enter exit...')
|
||||
exit_script()
|
||||
except SystemExit as sys_exit:
|
||||
exit_script(sys_exit.code)
|
||||
except:
|
||||
major_exception()
|
||||
|
||||
# vim: sts=2 sw=2 ts=2
|
||||
354
.bin/Scripts/system_setup.py
Normal file
354
.bin/Scripts/system_setup.py
Normal file
|
|
@ -0,0 +1,354 @@
|
|||
'''Wizard Kit: System Setup'''
|
||||
# pylint: disable=wildcard-import,wrong-import-position
|
||||
# vim: sts=2 sw=2 ts=2
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Init
|
||||
sys.path.append(os.path.dirname(os.path.realpath(__file__)))
|
||||
from collections import OrderedDict
|
||||
from functions.activation import *
|
||||
from functions.browsers import *
|
||||
from functions.cleanup import *
|
||||
from functions.info import *
|
||||
from functions.product_keys import *
|
||||
from functions.setup import *
|
||||
from functions.sw_diags import *
|
||||
from functions.windows_updates import *
|
||||
init_global_vars()
|
||||
os.system('title {}: System Setup'.format(KIT_NAME_FULL))
|
||||
set_log_file('System Setup.log')
|
||||
|
||||
|
||||
# STATIC VARIABLES
|
||||
# pylint: disable=bad-whitespace,line-too-long
|
||||
OTHER_RESULTS = {
|
||||
'Error': {
|
||||
'BIOSKeyNotFoundError': 'BIOS KEY NOT FOUND',
|
||||
'CalledProcessError': 'UNKNOWN ERROR',
|
||||
'FileNotFoundError': 'FILE NOT FOUND',
|
||||
'GenericError': 'UNKNOWN ERROR',
|
||||
'Not4KAlignedError': 'FALSE',
|
||||
'SecureBootDisabledError': 'DISABLED',
|
||||
'WindowsUnsupportedError': 'UNSUPPORTED',
|
||||
},
|
||||
'Warning': {
|
||||
'GenericRepair': 'REPAIRED',
|
||||
'NoProfilesError': 'NO PROFILES FOUND',
|
||||
'NotInstalledError': 'NOT INSTALLED',
|
||||
'OSInstalledLegacyError': 'OS INSTALLED LEGACY',
|
||||
'SecureBootNotAvailError': 'NOT AVAILABLE',
|
||||
'SecureBootUnknownError': 'UNKNOWN',
|
||||
'UnsupportedOSError': 'UNSUPPORTED OS',
|
||||
'WindowsOutdatedError': 'OUTDATED',
|
||||
},
|
||||
}
|
||||
SETUP_ACTIONS = OrderedDict({
|
||||
# Install software
|
||||
'Installing Programs': {'Info': True},
|
||||
'VCR': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': install_vcredists, 'Just run': True,},
|
||||
'LibreOffice': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': install_libreoffice,
|
||||
'If answer': 'LibreOffice', 'KWArgs': {'quickstart': False, 'register_mso_types': True, 'use_mso_formats': True, 'vcredist': False},
|
||||
},
|
||||
'Ninite bundle': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': install_ninite_bundle, 'KWArgs': {'cs': 'STARTED'},},
|
||||
|
||||
# Browsers
|
||||
'Scanning for browsers': {'Info': True},
|
||||
'Scan': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': scan_for_browsers, 'Just run': True, 'KWArgs': {'skip_ie': True},},
|
||||
'Backing up browsers': {'Info': True},
|
||||
'Backup browsers': {'New': False, 'Fab': True, 'Cur': True, 'HW': False, 'Function': backup_browsers, 'Just run': True,},
|
||||
|
||||
# Install extensions
|
||||
'Installing Extensions': {'Info': True},
|
||||
'Classic Shell skin': {'New': True, 'Fab': True, 'Cur': False, 'HW': False, 'Function': install_classicstart_skin, 'Win10 only': True,},
|
||||
'Chrome extensions': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': install_chrome_extensions,},
|
||||
'Firefox extensions': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': install_firefox_extensions,},
|
||||
|
||||
# Configure software'
|
||||
'Configuring Programs': {'Info': True},
|
||||
'Browser add-ons': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': install_adblock, 'Just run': True,
|
||||
'Pause': 'Please enable uBlock Origin for all browsers',
|
||||
},
|
||||
'Classic Start': {'New': True, 'Fab': True, 'Cur': False, 'HW': False, 'Function': config_classicstart, 'Win10 only': True,},
|
||||
'Config Windows Updates': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': config_windows_updates, 'Win10 only': True,},
|
||||
'Enable Windows Updates': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': enable_windows_updates, 'KWArgs': {'silent': True},},
|
||||
'Explorer (system)': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': config_explorer_system, 'Win10 only': True,},
|
||||
'Explorer (user)': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': config_explorer_user, 'Win10 only': True,},
|
||||
'Restart Explorer': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': restart_explorer,},
|
||||
'Update Clock': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': update_clock,},
|
||||
|
||||
# Cleanup
|
||||
'Cleaning up': {'Info': True},
|
||||
'AdwCleaner': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': cleanup_adwcleaner,},
|
||||
'Desktop': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': cleanup_desktop,},
|
||||
'KIT_NAME_FULL': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': delete_empty_folders,},
|
||||
|
||||
# System Info
|
||||
'Exporting system info': {'Info': True},
|
||||
'AIDA64 Report': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': run_aida64,},
|
||||
'File listing': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': backup_file_list,},
|
||||
'Power plans': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': backup_power_plans,},
|
||||
'Product Keys': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': run_produkey,},
|
||||
'Registry': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': backup_registry,},
|
||||
|
||||
# Show Summary
|
||||
'Summary': {'Info': True},
|
||||
'Operating System': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': show_os_name, 'KWArgs': {'ns': 'UNKNOWN', 'silent_function': False},},
|
||||
'Activation': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': show_os_activation, 'KWArgs': {'ns': 'UNKNOWN', 'silent_function': False},},
|
||||
'BIOS Activation': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': activate_with_bios, 'If not activated': True,},
|
||||
'Secure Boot': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': check_secure_boot_status, 'KWArgs': {'show_alert': False},},
|
||||
'Installed RAM': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': show_installed_ram, 'KWArgs': {'ns': 'UNKNOWN', 'silent_function': False},},
|
||||
'Temp size': {'New': False, 'Fab': False, 'Cur': True, 'HW': False, 'Function': show_temp_files_size, 'KWArgs': {'ns': 'UNKNOWN', 'silent_function': False},},
|
||||
'Show free space': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': show_free_space, 'Just run': True,},
|
||||
'Installed AV': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': get_installed_antivirus, 'KWArgs': {'ns': 'UNKNOWN', 'print_return': True},},
|
||||
'Installed Office': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': get_installed_office, 'KWArgs': {'ns': 'UNKNOWN', 'print_return': True},},
|
||||
'Partitions 4K aligned': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': check_4k_alignment, 'KWArgs': {'cs': 'TRUE', 'ns': 'FALSE'},},
|
||||
|
||||
# Open things
|
||||
'Opening Programs': {'Info': True},
|
||||
'Device Manager': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': open_device_manager, 'KWArgs': {'cs': 'STARTED'},},
|
||||
'HWiNFO sensors': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': run_hwinfo_sensors, 'KWArgs': {'cs': 'STARTED'},},
|
||||
'Speed test': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': open_speedtest, 'KWArgs': {'cs': 'STARTED'},},
|
||||
'Windows Updates': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': open_windows_updates, 'KWArgs': {'cs': 'STARTED'},},
|
||||
'Windows Activation': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': open_windows_activation, 'If not activated': True, 'KWArgs': {'cs': 'STARTED'},},
|
||||
'Sleep': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': sleep, 'Just run': True, 'KWArgs': {'seconds': 3},},
|
||||
'XMPlay': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': run_xmplay, 'KWArgs': {'cs': 'STARTED'},},
|
||||
})
|
||||
SETUP_ACTION_KEYS = (
|
||||
'Function',
|
||||
'If not activated',
|
||||
'Info',
|
||||
'Just run',
|
||||
'KWArgs',
|
||||
'Pause',
|
||||
)
|
||||
SETUP_QUESTIONS = {
|
||||
# AV
|
||||
'MSE': {'New': None, 'Fab': None, 'Cur': None, 'HW': False, 'Ninite': True},
|
||||
|
||||
# LibreOffice
|
||||
'LibreOffice': {'New': None, 'Fab': None, 'Cur': None, 'HW': False, 'Ninite': True},
|
||||
|
||||
# Ninite
|
||||
'Base': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Ninite': True},
|
||||
'Missing': {'New': False, 'Fab': True, 'Cur': False, 'HW': False, 'Ninite': True},
|
||||
'Standard': {'New': True, 'Fab': True, 'Cur': False, 'HW': False, 'Ninite': True},
|
||||
}
|
||||
# pylint: enable=bad-whitespace,line-too-long
|
||||
|
||||
|
||||
# Functions
|
||||
def check_os_and_abort():
|
||||
"""Check OS and prompt to abort if not supported."""
|
||||
result = try_and_print(
|
||||
message='OS support status...',
|
||||
function=check_os_support_status,
|
||||
cs='GOOD',
|
||||
)
|
||||
if not result['CS'] and 'Unsupported' in result['Error']:
|
||||
print_warning('OS version not supported by this script')
|
||||
if not ask('Continue anyway? (NOT RECOMMENDED)'):
|
||||
abort()
|
||||
|
||||
|
||||
def get_actions(setup_mode, answers):
|
||||
"""Get actions to perform based on setup_mode, returns OrderedDict."""
|
||||
actions = OrderedDict({})
|
||||
for _key, _val in SETUP_ACTIONS.items():
|
||||
_action = {}
|
||||
_if_answer = _val.get('If answer', False)
|
||||
_win10_only = _val.get('Win10 only', False)
|
||||
|
||||
# Set enabled status
|
||||
_enabled = _val.get(setup_mode, False)
|
||||
if _if_answer:
|
||||
_enabled = _enabled and answers[_if_answer]
|
||||
if _win10_only:
|
||||
_enabled = _enabled and global_vars['OS']['Version'] == '10'
|
||||
_action['Enabled'] = _enabled
|
||||
|
||||
# Set other keys
|
||||
for _sub_key in SETUP_ACTION_KEYS:
|
||||
_action[_sub_key] = _val.get(_sub_key, None)
|
||||
|
||||
# Fix KWArgs
|
||||
if _action.get('KWArgs', {}) is None:
|
||||
_action['KWArgs'] = {}
|
||||
|
||||
# Handle "special" actions
|
||||
if _key == 'KIT_NAME_FULL':
|
||||
# Cleanup WK folders
|
||||
_key = KIT_NAME_FULL
|
||||
_action['KWArgs'] = {'folder_path': global_vars['ClientDir']}
|
||||
elif _key == 'Ninite bundle':
|
||||
# Add install_ninite_bundle() kwargs
|
||||
_action['KWArgs'].update({
|
||||
kw.lower(): kv for kw, kv in answers.items()
|
||||
if SETUP_QUESTIONS.get(kw, {}).get('Ninite', False)
|
||||
})
|
||||
elif _key == 'Explorer (user)':
|
||||
# Explorer settings (user)
|
||||
_action['KWArgs'] = {'setup_mode': setup_mode}
|
||||
|
||||
# Add to dict
|
||||
actions[_key] = _action
|
||||
|
||||
return actions
|
||||
|
||||
|
||||
def get_answers(setup_mode):
|
||||
"""Get setup answers based on setup_mode and user input, returns dict."""
|
||||
answers = {k: v.get(setup_mode, False) for k, v in SETUP_QUESTIONS.items()}
|
||||
|
||||
# Answer setup questions as needed
|
||||
if answers['MSE'] is None and global_vars['OS']['Version'] == '7':
|
||||
answers.update(get_av_selection())
|
||||
|
||||
if answers['LibreOffice'] is None:
|
||||
answers['LibreOffice'] = ask('Install LibreOffice?')
|
||||
|
||||
return answers
|
||||
|
||||
|
||||
def get_av_selection():
|
||||
"""Get AV selection."""
|
||||
av_answers = {
|
||||
'MSE': False,
|
||||
}
|
||||
av_options = [
|
||||
{
|
||||
'Name': 'Microsoft Security Essentials',
|
||||
'Disabled': global_vars['OS']['Version'] not in ['7'],
|
||||
},
|
||||
]
|
||||
actions = [
|
||||
{'Name': 'None', 'Letter': 'N'},
|
||||
{'Name': 'Quit', 'Letter': 'Q'},
|
||||
]
|
||||
|
||||
# Show menu
|
||||
selection = menu_select(
|
||||
'Please select an option to install',
|
||||
main_entries=av_options,
|
||||
action_entries=actions)
|
||||
if selection.isnumeric():
|
||||
index = int(selection) - 1
|
||||
if 'Microsoft' in av_options[index]['Name']:
|
||||
av_answers['MSE'] = True
|
||||
elif selection == 'Q':
|
||||
abort()
|
||||
|
||||
return av_answers
|
||||
|
||||
|
||||
def get_mode():
|
||||
"""Get mode via menu_select, returns str."""
|
||||
setup_mode = None
|
||||
mode_options = [
|
||||
{'Name': 'New', 'Display Name': 'New / Clean install (no data)'},
|
||||
{'Name': 'Data', 'Display Name': 'Clean install with data migration'},
|
||||
{'Name': 'Cur', 'Display Name': 'Original OS (post-repair or overinstall)'},
|
||||
{'Name': 'HW', 'Display Name': 'Hardware service (i.e. no software work)'},
|
||||
]
|
||||
actions = [
|
||||
{'Name': 'Quit', 'Letter': 'Q'},
|
||||
]
|
||||
|
||||
# Get selection
|
||||
selection = menu_select(
|
||||
'Please select a setup mode',
|
||||
main_entries=mode_options,
|
||||
action_entries=actions)
|
||||
if selection.isnumeric():
|
||||
index = int(selection) - 1
|
||||
setup_mode = mode_options[index]['Name']
|
||||
elif selection == 'Q':
|
||||
abort()
|
||||
|
||||
return setup_mode
|
||||
|
||||
|
||||
def main():
|
||||
"""Main function."""
|
||||
stay_awake()
|
||||
clear_screen()
|
||||
|
||||
# Check installed OS
|
||||
check_os_and_abort()
|
||||
|
||||
# Get setup mode
|
||||
setup_mode = get_mode()
|
||||
|
||||
# Get answers to setup questions
|
||||
answers = get_answers(setup_mode)
|
||||
|
||||
# Get actions to perform
|
||||
actions = get_actions(setup_mode, answers)
|
||||
|
||||
# Perform actions
|
||||
for action, values in actions.items():
|
||||
kwargs = values.get('KWArgs', {})
|
||||
|
||||
# Print info lines
|
||||
if values.get('Info', False):
|
||||
print_info(action)
|
||||
continue
|
||||
|
||||
# Print disabled actions
|
||||
if not values.get('Enabled', False):
|
||||
show_data(
|
||||
message='{}...'.format(action),
|
||||
data='DISABLED',
|
||||
warning=True,
|
||||
)
|
||||
continue
|
||||
|
||||
# Check Windows activation if requested
|
||||
if values.get('If not activated', False) and windows_is_activated():
|
||||
# Skip
|
||||
continue
|
||||
|
||||
# Run function
|
||||
if values.get('Just run', False):
|
||||
values['Function'](**kwargs)
|
||||
else:
|
||||
result = try_and_print(
|
||||
message='{}...'.format(action),
|
||||
function=values['Function'],
|
||||
other_results=OTHER_RESULTS,
|
||||
**kwargs)
|
||||
|
||||
# Wait for Ninite proc(s)
|
||||
if action == 'Ninite bundle':
|
||||
print_standard('Waiting for installations to finish...')
|
||||
try:
|
||||
for proc in result['Out']:
|
||||
proc.wait()
|
||||
except KeyboardInterrupt:
|
||||
pass
|
||||
|
||||
# Pause
|
||||
if values.get('Pause', False):
|
||||
print_standard(values['Pause'])
|
||||
pause()
|
||||
|
||||
# Show alert box for SecureBoot issues
|
||||
try:
|
||||
check_secure_boot_status(show_alert=True)
|
||||
except Exception: # pylint: disable=broad-except
|
||||
# Ignoring exceptions since we just want to show the popup
|
||||
pass
|
||||
|
||||
# Done
|
||||
pause('Press Enter to exit... ')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
main()
|
||||
exit_script()
|
||||
except SystemExit as sys_exit:
|
||||
exit_script(sys_exit.code)
|
||||
except: # pylint: disable=bare-except
|
||||
major_exception()
|
||||
|
|
@ -1,90 +0,0 @@
|
|||
# Wizard Kit: User Checklist
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Init
|
||||
sys.path.append(os.path.dirname(os.path.realpath(__file__)))
|
||||
from functions.browsers import *
|
||||
from functions.cleanup import *
|
||||
from functions.setup import *
|
||||
init_global_vars()
|
||||
os.system('title {}: User Checklist Tool'.format(KIT_NAME_FULL))
|
||||
set_log_file('User Checklist ({USERNAME}).log'.format(**global_vars['Env']))
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
stay_awake()
|
||||
clear_screen()
|
||||
print_info('{}: User Checklist\n'.format(KIT_NAME_FULL))
|
||||
other_results = {
|
||||
'Warning': {
|
||||
'NotInstalledError': 'Not installed',
|
||||
'NoProfilesError': 'No profiles found',
|
||||
}}
|
||||
answer_config_browsers = ask('Install adblock?')
|
||||
if answer_config_browsers:
|
||||
answer_reset_browsers = ask(
|
||||
'Reset browsers to safe defaults first?')
|
||||
if global_vars['OS']['Version'] == '10':
|
||||
answer_config_classicshell = ask('Configure ClassicShell?')
|
||||
answer_config_explorer_user = ask('Configure Explorer?')
|
||||
|
||||
# Cleanup
|
||||
print_info('Cleanup')
|
||||
try_and_print(message='Desktop...',
|
||||
function=cleanup_desktop, cs='Done')
|
||||
|
||||
# Scan for supported browsers
|
||||
print_info('Scanning for browsers')
|
||||
scan_for_browsers()
|
||||
|
||||
# Homepages
|
||||
print_info('Current homepages')
|
||||
list_homepages()
|
||||
|
||||
# Backup
|
||||
print_info('Backing up browsers')
|
||||
backup_browsers()
|
||||
|
||||
# Reset
|
||||
if answer_config_browsers and answer_reset_browsers:
|
||||
print_info('Resetting browsers')
|
||||
reset_browsers()
|
||||
|
||||
# Configure
|
||||
print_info('Configuring programs')
|
||||
if answer_config_browsers:
|
||||
install_adblock()
|
||||
if global_vars['OS']['Version'] == '10':
|
||||
if answer_config_classicshell:
|
||||
try_and_print(message='ClassicStart...',
|
||||
function=config_classicstart, cs='Done')
|
||||
if answer_config_explorer_user:
|
||||
try_and_print(message='Explorer...',
|
||||
function=config_explorer_user, cs='Done')
|
||||
if (not answer_config_browsers
|
||||
and not answer_config_classicshell
|
||||
and not answer_config_explorer_user):
|
||||
print_warning(' Skipped')
|
||||
else:
|
||||
if not answer_config_browsers:
|
||||
print_warning(' Skipped')
|
||||
|
||||
# Restart Explorer
|
||||
try_and_print(message='Restarting Explorer...',
|
||||
function=restart_explorer, cs='Done')
|
||||
|
||||
# Run speedtest
|
||||
popen_program(['start', '', 'https://fast.com'], shell=True)
|
||||
|
||||
# Done
|
||||
print_standard('\nDone.')
|
||||
pause('Press Enter to exit...')
|
||||
exit_script()
|
||||
except SystemExit as sys_exit:
|
||||
exit_script(sys_exit.code)
|
||||
except:
|
||||
major_exception()
|
||||
|
||||
# vim: sts=2 sw=2 ts=2
|
||||
Loading…
Reference in a new issue