Merge branch 'dev' of github.com:2Shirt/WizardKit into dev

This commit is contained in:
2Shirt 2018-10-08 15:48:45 -06:00
commit 95c8de0a21
Signed by: 2Shirt
GPG key ID: 152FAC923B0E132C
7 changed files with 253 additions and 145 deletions

View file

@ -64,12 +64,24 @@ class NotInstalledError(Exception):
class NoProfilesError(Exception):
pass
class OSInstalledLegacyError(Exception):
pass
class PathNotFoundError(Exception):
pass
class UnsupportedOSError(Exception):
pass
class SecureBootDisabledError(Exception):
pass
class SecureBootNotAvailError(Exception):
pass
class SecureBootUnknownError(Exception):
pass
# General functions
def abort():
"""Abort script."""
@ -271,7 +283,7 @@ def human_readable_size(size, decimals=0):
units = 'Kb'
else:
units = ' b'
# Return
return '{size:>{width}.{decimals}f} {units}'.format(
size=size, width=width, decimals=decimals, units=units)
@ -462,7 +474,7 @@ def run_program(cmd, args=[], check=True, pipe=True, shell=False):
def set_title(title='~Some Title~'):
"""Set title.
Used for window title and menu titles."""
global_vars['Title'] = title
os.system('title {}'.format(title))
@ -566,7 +578,7 @@ def try_and_print(message='Trying...',
def upload_crash_details():
"""Upload log and runtime data to the CRASH_SERVER.
Intended for uploading to a public Nextcloud share."""
if not ENABLED_UPLOAD_DATA:
raise GenericError
@ -648,7 +660,7 @@ def init_global_vars():
def check_os():
"""Set OS specific variables."""
tmp = {}
# Query registry
path = r'SOFTWARE\Microsoft\Windows NT\CurrentVersion'
with winreg.OpenKey(HKLM, path) as key:
@ -697,7 +709,7 @@ def check_os():
tmp['DisplayName'] = '{} x{}'.format(tmp['Name'], tmp['Arch'])
if tmp['Notes']:
tmp['DisplayName'] += ' ({})'.format(tmp['Notes'])
global_vars['OS'] = tmp
def check_tools():
@ -714,7 +726,7 @@ def check_tools():
def clean_env_vars():
"""Remove conflicting global_vars and env variables.
This fixes an issue where both global_vars and
global_vars['Env'] are expanded at the same time."""
for key in global_vars.keys():
@ -768,7 +780,7 @@ def set_common_vars():
def set_linux_vars():
"""Set common variables in a Linux environment.
These assume we're running under a WK-Linux build."""
result = run_program(['mktemp', '-d'])
global_vars['TmpDir'] = result.stdout.decode().strip()

View file

@ -1,5 +1,7 @@
# Wizard Kit: Functions - Diagnostics
import ctypes
from functions.common import *
# STATIC VARIABLES
@ -30,12 +32,59 @@ def check_connection():
result = try_and_print(message='Ping test...', function=ping, cs='OK')
if result['CS']:
break
if not ask('ERROR: System appears offline, try again?'):
if ask('Continue anyway?'):
break
else:
abort()
def check_secure_boot_status():
"""Checks UEFI Secure Boot status via PowerShell."""
boot_mode = get_boot_mode()
cmd = ['PowerShell', '-Command', 'Confirm-SecureBootUEFI']
result = run_program(cmd, check=False)
# Check results
if result.returncode == 0:
out = result.stdout.decode()
if 'True' in out:
# It's on, do nothing
return
elif 'False' in out:
raise SecureBootDisabledError
else:
if not ask('ERROR: System appears offline, try again?'):
if ask('Continue anyway?'):
break
else:
abort()
raise SecureBootUnknownError
else:
if boot_mode != 'UEFI':
raise OSInstalledLegacyError
else:
# Check error message
err = result.stderr.decode()
if 'Cmdlet not supported' in err:
raise SecureBootNotAvailError
else:
raise GenericError
def get_boot_mode():
"""Check if Windows is booted in UEFI or Legacy mode, returns str."""
kernel = ctypes.windll.kernel32
firmware_type = ctypes.c_uint()
# Get value from kernel32 API
try:
kernel.GetFirmwareType(ctypes.byref(firmware_type))
except:
# Just set to zero
firmware_type = ctypes.c_uint(0)
# Set return value
type_str = 'Unknown'
if firmware_type.value == 1:
type_str = 'Legacy'
elif firmware_type.value == 2:
type_str = 'UEFI'
return type_str
def run_autoruns():
"""Run AutoRuns in the background with VirusTotal checks enabled."""
@ -61,11 +110,22 @@ def run_hwinfo_sensors():
f.write('SummaryOnly=0\n')
popen_program(global_vars['Tools']['HWiNFO'])
def run_nircmd(*cmd):
"""Run custom NirCmd."""
extract_item('NirCmd', silent=True)
cmd = [global_vars['Tools']['NirCmd'], *cmd]
run_program(cmd, check=False)
def run_xmplay():
"""Run XMPlay to test audio."""
extract_item('XMPlay', silent=True)
cmd = [global_vars['Tools']['XMPlay'],
r'{BinDir}\XMPlay\music.7z'.format(**global_vars)]
# Unmute audio first
run_nircmd(['mutesysvolume', '0'])
# Open XMPlay
popen_program(cmd)
def run_hitmanpro():

View file

@ -28,7 +28,7 @@ def compress_item(item):
wd = os.path.abspath(r'{}\{}'.format(wd, os.path.pardir))
include_str = item.name
os.chdir(wd)
# Compress
cmd = [
global_vars['Tools']['SevenZip'],
@ -38,7 +38,7 @@ def compress_item(item):
include_str,
]
run_program(cmd)
# Done
os.chdir(prev_dir)
@ -96,7 +96,7 @@ def generate_launcher(section, name, options):
dest = global_vars['BaseDir']
full_path = r'{}\{}.cmd'.format(dest, name)
template = r'{}\Scripts\Launcher_Template.cmd'.format(global_vars['BinDir'])
# Format options
f_options = {}
for opt in options.keys():
@ -106,7 +106,7 @@ def generate_launcher(section, name, options):
elif re.search(r'^L_\w+', opt, re.IGNORECASE):
new_opt = 'set {}='.format(opt)
f_options[new_opt] = ['set {}={}'.format(opt, options[opt])]
# Read template and update using f_options
out_text = []
with open(template, 'r') as f:
@ -118,7 +118,7 @@ def generate_launcher(section, name, options):
out_text.extend(f_options[line])
else:
out_text.append(line)
# Write file
os.makedirs(dest, exist_ok=True)
with open(full_path, 'w') as f:
@ -172,7 +172,7 @@ def scan_for_net_installers(server, family_name, min_year):
"""Scan network shares for installers."""
if not server['Mounted']:
mount_network_share(server)
if server['Mounted']:
for year in os.scandir(r'\\{IP}\{Share}'.format(**server)):
try:
@ -204,13 +204,13 @@ def update_testdisk():
for exe in ['fidentify_win.exe', 'photorec_win.exe',
'qphotorec_win.exe', 'testdisk_win.exe']:
kill_process(exe)
# Remove existing folders
remove_from_kit('TestDisk')
# Download
download_to_temp('testdisk_wip.zip', SOURCE_URLS['TestDisk'])
# Extract files
extract_temp_to_cbin('testdisk_wip.zip', 'TestDisk')
dest = r'{}\TestDisk'.format(global_vars['CBinDir'])
@ -220,7 +220,7 @@ def update_testdisk():
shutil.move(item.path, dest_item)
shutil.rmtree(
r'{}\TestDisk\testdisk-7.1-WIP'.format(global_vars['CBinDir']))
# Cleanup
remove_from_temp('testdisk_wip.zip')
@ -230,10 +230,10 @@ def update_fastcopy():
# Stop running processes
for process in ['FastCopy.exe', 'FastCopy64.exe']:
kill_process(process)
# Remove existing folders
remove_from_kit('FastCopy')
# Download
download_to_temp('FastCopy.zip', SOURCE_URLS['FastCopy'])
@ -267,14 +267,14 @@ def update_fastcopy():
def update_wimlib():
# Stop running processes
kill_process('wimlib-imagex.exe')
# Remove existing folders
remove_from_kit('wimlib')
# Download
download_to_temp('wimlib32.zip', SOURCE_URLS['wimlib32'])
download_to_temp('wimlib64.zip', SOURCE_URLS['wimlib64'])
# Extract
extract_generic(
r'{}\wimlib32.zip'.format(global_vars['TmpDir']),
@ -282,7 +282,7 @@ def update_wimlib():
extract_generic(
r'{}\wimlib64.zip'.format(global_vars['TmpDir']),
r'{}\wimlib\x64'.format(global_vars['CBinDir']))
# Cleanup
remove_from_temp('wimlib32.zip')
remove_from_temp('wimlib64.zip')
@ -290,16 +290,16 @@ def update_wimlib():
def update_xyplorer():
# Stop running processes
kill_process('XYplorerFree.exe')
# Remove existing folders
remove_from_kit('XYplorerFree')
# Download
download_to_temp('xyplorer_free.zip', SOURCE_URLS['XYplorerFree'])
# Extract files
extract_temp_to_cbin('xyplorer_free.zip', 'XYplorerFree')
# Cleanup
remove_from_temp('xyplorer_free.zip')
@ -307,16 +307,16 @@ def update_xyplorer():
def update_aida64():
# Stop running processes
kill_process('notepadplusplus.exe')
# Remove existing folders
remove_from_kit('AIDA64')
# Download
download_to_temp('aida64.zip', SOURCE_URLS['AIDA64'])
# Extract files
extract_temp_to_cbin('aida64.zip', 'AIDA64')
# Cleanup
remove_from_temp('aida64.zip')
@ -324,37 +324,37 @@ def update_autoruns():
# Stop running processes
kill_process('Autoruns.exe')
kill_process('Autoruns64.exe')
# Remove existing folders
remove_from_kit('Autoruns')
# Download
download_to_temp('Autoruns.zip', SOURCE_URLS['Autoruns'])
# Extract files
extract_temp_to_cbin('Autoruns.zip', 'Autoruns')
# Cleanup
remove_from_temp('Autoruns.zip')
def update_bleachbit():
# Stop running processes
kill_process('bleachbit.exe')
# Remove existing folders
remove_from_kit('BleachBit')
# Download
download_to_temp('bleachbit.zip', SOURCE_URLS['BleachBit'])
download_to_temp('Winapp2.zip', SOURCE_URLS['Winapp2'])
# Extract files
extract_temp_to_cbin('bleachbit.zip', 'BleachBit')
extract_generic(
r'{}\Winapp2.zip'.format(global_vars['TmpDir']),
r'{}\BleachBit\cleaners'.format(global_vars['CBinDir']),
mode='e', sz_args=[r'Winapp2-master\Non-CCleaner\Winapp2.ini'])
# Move files into place
dest = r'{}\BleachBit'.format(global_vars['CBinDir'])
for item in os.scandir(r'{}\BleachBit-Portable'.format(dest)):
@ -363,7 +363,7 @@ def update_bleachbit():
shutil.move(item.path, dest_item)
shutil.rmtree(
r'{}\BleachBit\BleachBit-Portable'.format(global_vars['CBinDir']))
# Cleanup
remove_from_temp('bleachbit.zip')
remove_from_temp('Winapp2.zip')
@ -372,21 +372,21 @@ def update_bluescreenview():
# Stop running processes
for exe in ['BlueScreenView.exe', 'BlueScreenView64.exe']:
kill_process(exe)
# Remove existing folders
remove_from_kit('BlueScreenView')
# Download
download_to_temp('bluescreenview32.zip', SOURCE_URLS['BlueScreenView32'])
download_to_temp('bluescreenview64.zip', SOURCE_URLS['BlueScreenView64'])
# Extract files
extract_temp_to_cbin('bluescreenview64.zip', 'BlueScreenView', sz_args=['BlueScreenView.exe'])
shutil.move(
r'{}\BlueScreenView\BlueScreenView.exe'.format(global_vars['CBinDir']),
r'{}\BlueScreenView\BlueScreenView64.exe'.format(global_vars['CBinDir']))
extract_temp_to_cbin('bluescreenview32.zip', 'BlueScreenView')
# Cleanup
remove_from_temp('bluescreenview32.zip')
remove_from_temp('bluescreenview64.zip')
@ -394,16 +394,16 @@ def update_bluescreenview():
def update_erunt():
# Stop running processes
kill_process('ERUNT.EXE')
# Remove existing folders
remove_from_kit('ERUNT')
# Download
download_to_temp('erunt.zip', SOURCE_URLS['ERUNT'])
# Extract files
extract_temp_to_cbin('erunt.zip', 'ERUNT')
# Cleanup
remove_from_temp('erunt.zip')
@ -411,10 +411,10 @@ def update_hitmanpro():
# Stop running processes
for exe in ['HitmanPro.exe', 'HitmanPro64.exe']:
kill_process(exe)
# Remove existing folders
remove_from_kit('HitmanPro')
# Download
dest = r'{}\HitmanPro'.format(global_vars['CBinDir'])
download_generic(dest, 'HitmanPro.exe', SOURCE_URLS['HitmanPro32'])
@ -425,35 +425,58 @@ def update_hwinfo():
# Stop running processes
for exe in ['HWiNFO32.exe', 'HWiNFO64.exe']:
kill_process(exe)
# Download
download_to_temp('HWiNFO.zip', SOURCE_URLS['HWiNFO'])
# Extract files
extract_temp_to_bin('HWiNFO.zip', 'HWiNFO')
# Cleanup
remove_from_temp('HWiNFO.zip')
def update_nircmd():
# Stop running processes
for exe in ['nircmdc.exe', 'nircmdc64.exe']:
kill_process(exe)
# Remove existing folders
remove_from_kit('NirCmd')
# Download
download_to_temp('nircmd32.zip', SOURCE_URLS['NirCmd32'])
download_to_temp('nircmd64.zip', SOURCE_URLS['NirCmd64'])
# Extract files
extract_temp_to_cbin('nircmd64.zip', 'NirCmd', sz_args=['nircmdc.exe'])
shutil.move(
r'{}\NirCmd\nircmdc.exe'.format(global_vars['CBinDir']),
r'{}\NirCmd\nircmdc64.exe'.format(global_vars['CBinDir']))
extract_temp_to_cbin('nircmd32.zip', 'NirCmd', sz_args=['nircmdc.exe'])
# Cleanup
remove_from_temp('nircmd32.zip')
remove_from_temp('nircmd64.zip')
def update_produkey():
# Stop running processes
for exe in ['ProduKey.exe', 'ProduKey64.exe']:
kill_process(exe)
# Remove existing folders
remove_from_kit('ProduKey')
# Download
download_to_temp('produkey32.zip', SOURCE_URLS['ProduKey32'])
download_to_temp('produkey64.zip', SOURCE_URLS['ProduKey64'])
# Extract files
extract_temp_to_cbin('produkey64.zip', 'ProduKey', sz_args=['ProduKey.exe'])
shutil.move(
r'{}\ProduKey\ProduKey.exe'.format(global_vars['CBinDir']),
r'{}\ProduKey\ProduKey64.exe'.format(global_vars['CBinDir']))
extract_temp_to_cbin('produkey32.zip', 'ProduKey')
# Cleanup
remove_from_temp('produkey32.zip')
remove_from_temp('produkey64.zip')
@ -462,14 +485,14 @@ def update_produkey():
def update_intel_rst():
# Remove existing folders
remove_from_kit('Intel RST')
# Prep
dest = r'{}\_Drivers\Intel RST'.format(global_vars['CBinDir'])
include_path = r'{}\_include\_Drivers\Intel RST'.format(
global_vars['CBinDir'])
if os.path.exists(include_path):
shutil.copytree(include_path, dest)
# Download
for name, url in RST_SOURCES.items():
download_generic(dest, name, url)
@ -477,7 +500,7 @@ def update_intel_rst():
def update_intel_ssd_toolbox():
# Remove existing folders
remove_from_kit('Intel SSD Toolbox.exe')
# Download
download_generic(
r'{}\_Drivers\Intel SSD Toolbox'.format(global_vars['CBinDir']),
@ -487,7 +510,7 @@ def update_intel_ssd_toolbox():
def update_samsung_magician():
# Remove existing folders
remove_from_kit('Samsung Magician.exe')
# Download
download_to_temp('Samsung Magician.zip', SOURCE_URLS['Samsung Magician'])
@ -509,7 +532,7 @@ def update_sdi_origin():
aria_dest = r'{}\aria2'.format(global_vars['TmpDir'])
aria = r'{}\aria2c.exe'.format(aria_dest)
extract_generic(aria_source, aria_dest, mode='e')
# Prep for torrent download
download_to_temp('sdio.torrent', SOURCE_URLS['SDIO Torrent'])
sdio_torrent = r'{}\sdio.torrent'.format(global_vars['TmpDir'])
@ -520,7 +543,7 @@ def update_sdi_origin():
if r and not re.search(r'(\.(bat|inf)|Video|Server|Printer|XP)', line, re.IGNORECASE):
indexes.append(int(r.group(1)))
indexes = [str(i) for i in sorted(indexes)]
# Download SDI Origin
cmd = [
aria,
@ -533,13 +556,13 @@ def update_sdi_origin():
run_program(cmd, pipe=False, check=False, shell=True)
sleep(1)
wait_for_process('aria2c')
# Download SDI Origin extra themes
download_to_temp('sdio_themes.zip', SOURCE_URLS['SDIO Themes'])
theme_source = r'{}\sdio_themes.zip'.format(global_vars['TmpDir'])
theme_dest = r'{}\SDIO_Update\tools\SDI\themes'.format(aria_dest)
extract_generic(theme_source, theme_dest)
# Move files into place
for item in os.scandir(r'{}\SDIO_Update'.format(aria_dest)):
dest_item = '{}\_Drivers\SDIO\{}'.format(
@ -551,7 +574,7 @@ def update_sdi_origin():
if (not os.path.exists(dest_item)
and not re.search(r'\.(inf|bat)$', item.name, re.IGNORECASE)):
shutil.move(item.path, dest_item)
# Cleanup
remove_from_temp('aria2')
remove_from_temp('aria2.zip')
@ -563,13 +586,13 @@ def update_adobe_reader_dc():
# Prep
dest = r'{}\Installers\Extras\Office'.format(
global_vars['BaseDir'])
# Remove existing installer
try:
os.remove(r'{}\Adobe Reader DC.exe'.format(dest))
except FileNotFoundError:
pass
# Download
download_generic(
dest, 'Adobe Reader DC.exe', SOURCE_URLS['Adobe Reader DC'])
@ -577,13 +600,13 @@ def update_adobe_reader_dc():
def update_office():
# Remove existing folders
remove_from_kit('_Office')
# Prep
dest = r'{}\_Office'.format(global_vars['CBinDir'])
include_path = r'{}\_include\_Office'.format(global_vars['CBinDir'])
if os.path.exists(include_path):
shutil.copytree(include_path, dest)
for year in ['2016']:
# Download and extract
name = 'odt{}.exe'.format(year)
@ -598,14 +621,14 @@ def update_office():
shutil.move(
r'{}\{}'.format(global_vars['TmpDir'], year),
r'{}\_Office\{}'.format(global_vars['CBinDir'], year))
# Cleanup
remove_from_temp('odt{}.exe'.format(year))
def update_classic_start_skin():
# Remove existing folders
remove_from_kit('ClassicStartSkin')
# Download
download_generic(
r'{}\ClassicStartSkin'.format(global_vars['CBinDir']),
@ -615,13 +638,13 @@ def update_classic_start_skin():
def update_vcredists():
# Remove existing folders
remove_from_kit('_vcredists')
# Prep
dest = r'{}\_vcredists'.format(global_vars['CBinDir'])
include_path = r'{}\_include\_vcredists'.format(global_vars['CBinDir'])
if os.path.exists(include_path):
shutil.copytree(include_path, dest)
# Download
for year in VCREDIST_SOURCES.keys():
for bit in ['32', '64']:
@ -635,10 +658,10 @@ def update_vcredists():
def update_one_ninite(section, dest, name, url, indent=8, width=40):
# Prep
url = 'https://ninite.com/{}/ninite.exe'.format(url)
# Download
download_generic(out_dir=dest, out_name=name, source_url=url)
# Copy to Installers folder
installer_parent = r'{}\Installers\Extras\{}'.format(
global_vars['BaseDir'], section)
@ -662,16 +685,16 @@ def update_all_ninite(indent=8, width=40, other_results={}):
def update_caffeine():
# Stop running processes
kill_process('caffeine.exe')
# Remove existing folders
remove_from_kit('Caffeine')
# Download
download_to_temp('caffeine.zip', SOURCE_URLS['Caffeine'])
# Extract files
extract_temp_to_cbin('caffeine.zip', 'Caffeine')
# Cleanup
remove_from_temp('caffeine.zip')
@ -679,16 +702,16 @@ def update_du():
# Stop running processes
kill_process('du.exe')
kill_process('du64.exe')
# Remove existing folders
remove_from_kit('Du')
# Download
download_to_temp('du.zip', SOURCE_URLS['Du'])
# Extract files
extract_temp_to_cbin('du.zip', 'Du')
# Cleanup
remove_from_temp('du.zip')
@ -696,21 +719,21 @@ def update_everything():
# Stop running processes
for exe in ['Everything.exe', 'Everything64.exe']:
kill_process(exe)
# Remove existing folders
remove_from_kit('Everything')
# Download
download_to_temp('everything32.zip', SOURCE_URLS['Everything32'])
download_to_temp('everything64.zip', SOURCE_URLS['Everything64'])
# Extract files
extract_temp_to_cbin('everything64.zip', 'Everything', sz_args=['Everything.exe'])
shutil.move(
r'{}\Everything\Everything.exe'.format(global_vars['CBinDir']),
r'{}\Everything\Everything64.exe'.format(global_vars['CBinDir']))
extract_temp_to_cbin('everything32.zip', 'Everything')
# Cleanup
remove_from_temp('everything32.zip')
remove_from_temp('everything64.zip')
@ -718,7 +741,7 @@ def update_everything():
def update_firefox_ublock_origin():
# Remove existing folders
remove_from_kit('FirefoxExtensions')
# Download
download_generic(
r'{}\FirefoxExtensions'.format(global_vars['CBinDir']),
@ -728,36 +751,36 @@ def update_firefox_ublock_origin():
def update_notepadplusplus():
# Stop running processes
kill_process('notepadplusplus.exe')
# Remove existing folders
remove_from_kit('NotepadPlusPlus')
# Download
download_to_temp('npp.7z', SOURCE_URLS['NotepadPlusPlus'])
# Extract files
extract_temp_to_cbin('npp.7z', 'NotepadPlusPlus')
shutil.move(
r'{}\NotepadPlusPlus\notepad++.exe'.format(global_vars['CBinDir']),
r'{}\NotepadPlusPlus\notepadplusplus.exe'.format(global_vars['CBinDir'])
)
# Cleanup
remove_from_temp('npp.7z')
def update_putty():
# Stop running processes
kill_process('PUTTY.EXE')
# Remove existing folders
remove_from_kit('PuTTY')
# Download
download_to_temp('putty.zip', SOURCE_URLS['PuTTY'])
# Extract files
extract_temp_to_cbin('putty.zip', 'PuTTY')
# Cleanup
remove_from_temp('putty.zip')
@ -765,34 +788,34 @@ def update_wiztree():
# Stop running processes
for process in ['WizTree.exe', 'WizTree64.exe']:
kill_process(process)
# Remove existing folders
remove_from_kit('WizTree')
# Download
download_to_temp(
'wiztree.zip', SOURCE_URLS['WizTree'])
# Extract files
extract_temp_to_cbin('wiztree.zip', 'WizTree')
# Cleanup
remove_from_temp('wiztree.zip')
def update_xmplay():
# Stop running processes
kill_process('xmplay.exe')
# Remove existing folders
remove_from_kit('XMPlay')
# Download
download_to_temp('xmplay.zip', SOURCE_URLS['XMPlay'])
download_to_temp('xmp-7z.zip', SOURCE_URLS['XMPlay 7z'])
download_to_temp('xmp-gme.zip', SOURCE_URLS['XMPlay Game'])
download_to_temp('xmp-rar.zip', SOURCE_URLS['XMPlay RAR'])
download_to_temp('WAModern.zip', SOURCE_URLS['XMPlay WAModern'])
# Extract files
extract_temp_to_cbin('xmplay.zip', 'XMPlay',
mode='e', sz_args=['xmplay.exe', 'xmplay.txt'])
@ -804,7 +827,7 @@ def update_xmplay():
r'{}\{}.zip'.format(global_vars['TmpDir'], item),
r'{}\XMPlay\plugins'.format(global_vars['CBinDir']),
mode='e', sz_args=filter)
# Download Music
dest = r'{}\XMPlay\music_tmp\MOD'.format(global_vars['CBinDir'])
for mod in MUSIC_MOD:
@ -816,7 +839,7 @@ def update_xmplay():
name = '{}.rsn'.format(game)
url = 'http://snesmusic.org/v2/download.php?spcNow={}'.format(game)
download_generic(dest, name, url)
# Compress Music
cmd = [
global_vars['Tools']['SevenZip'],
@ -825,7 +848,7 @@ def update_xmplay():
r'{}\XMPlay\music_tmp\*'.format(global_vars['CBinDir']),
]
run_program(cmd)
# Cleanup
remove_item(r'{}\XMPlay\music_tmp'.format(global_vars['CBinDir']))
remove_from_temp('xmplay.zip')
@ -838,10 +861,10 @@ def update_xmplay():
def update_adwcleaner():
# Stop running processes
kill_process('AdwCleaner.exe')
# Remove existing folders
remove_from_kit('AdwCleaner')
# Download
download_generic(
r'{}\AdwCleaner'.format(global_vars['CBinDir']),
@ -851,10 +874,10 @@ def update_adwcleaner():
def update_kvrt():
# Stop running processes
kill_process('KVRT.exe')
# Remove existing folders
remove_from_kit('KVRT')
# Download
download_generic(
r'{}\KVRT'.format(global_vars['CBinDir']),
@ -864,10 +887,10 @@ def update_kvrt():
def update_rkill():
# Stop running processes
kill_process('RKill.exe')
# Remove existing folders
remove_from_kit('RKill')
# Download
url = resolve_dynamic_url(
SOURCE_URLS['RKill'],
@ -878,10 +901,10 @@ def update_rkill():
def update_tdsskiller():
# Stop running processes
kill_process('TDSSKiller.exe')
# Remove existing folders
remove_from_kit('TDSSKiller')
# Download
download_generic(
r'{}\TDSSKiller'.format(global_vars['CBinDir']),
@ -892,22 +915,22 @@ def update_tdsskiller():
def update_iobit_uninstaller():
# Stop running processes
kill_process('IObitUninstallerPortable.exe')
# Remove existing folders
remove_from_kit('IObitUninstallerPortable')
# Download
download_generic(
global_vars['CBinDir'],
'IObitUninstallerPortable.exe',
SOURCE_URLS['IOBit_Uninstaller'])
# "Install"
cmd = r'{}\IObitUninstallerPortable.exe'.format(global_vars['CBinDir'])
popen_program(cmd)
sleep(1)
wait_for_process('IObitUninstallerPortable')
# Cleanup
remove_from_kit('IObitUninstallerPortable.exe')

View file

@ -23,6 +23,8 @@ SOURCE_URLS = {
'Intel SSD Toolbox': r'https://downloadmirror.intel.com/27656/eng/Intel%20SSD%20Toolbox%20-%20v3.5.2.exe',
'IOBit_Uninstaller': 'https://portableapps.duckduckgo.com/IObitUninstallerPortable_7.5.0.7.paf.exe',
'KVRT': 'http://devbuilds.kaspersky-labs.com/devbuilds/KVRT/latest/full/KVRT.exe',
'NirCmd32': 'https://www.nirsoft.net/utils/nircmd.zip',
'NirCmd64': 'https://www.nirsoft.net/utils/nircmd-x64.zip',
'NotepadPlusPlus': 'https://notepad-plus-plus.org/repository/7.x/7.5.8/npp.7.5.8.bin.minimalist.7z',
'Office Deployment Tool 2016': 'https://download.microsoft.com/download/2/7/A/27AF1BE6-DD20-4CB4-B154-EBAB8A7D4A7E/officedeploymenttool_10810.33603.exe',
'ProduKey32': 'http://www.nirsoft.net/utils/produkey.zip',
@ -193,6 +195,5 @@ RST_SOURCES = {
'SetupRST_16.5.exe': 'https://downloadmirror.intel.com/27984/eng/SetupRST.exe',
}
if __name__ == '__main__':
print("This file is not meant to be called directly.")

View file

@ -30,6 +30,9 @@ TOOLS = {
'64': r'HWiNFO\HWiNFO64.exe'},
'KVRT': {
'32': r'KVRT\KVRT.exe'},
'NirCmd': {
'32': r'NirCmd\nircmdc.exe',
'64': r'NirCmd\nircmdc64.exe'},
'NotepadPlusPlus': {
'32': r'NotepadPlusPlus\notepadplusplus.exe'},
'ProduKey': {

View file

@ -24,11 +24,17 @@ if __name__ == '__main__':
ticket_number = get_ticket_number()
other_results = {
'Error': {
'CalledProcessError': 'Unknown Error',
'BIOSKeyNotFoundError': 'BIOS key not found',
'FileNotFoundError': 'File not found',
'BIOSKeyNotFoundError': 'BIOS key not found',
'CalledProcessError': 'Unknown Error',
'FileNotFoundError': 'File not found',
'GenericError': 'Unknown Error',
'SecureBootDisabledError': 'Disabled',
},
'Warning': {}}
'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))
@ -76,6 +82,8 @@ if __name__ == '__main__':
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()

View file

@ -18,23 +18,23 @@ if __name__ == '__main__':
'Error': {
'CalledProcessError': 'Unknown Error',
}}
## Prep ##
update_sdio = ask('Update SDI Origin?')
## Download ##
print_success('Downloading tools')
# Data Recovery
print_info(' Data Recovery')
try_and_print(message='TestDisk / PhotoRec...', function=update_testdisk, other_results=other_results, width=40)
# Data Transfers
print_info(' Data Transfers')
try_and_print(message='FastCopy...', function=update_fastcopy, other_results=other_results, width=40)
try_and_print(message='wimlib...', function=update_wimlib, other_results=other_results, width=40)
try_and_print(message='XYplorer...', function=update_xyplorer, other_results=other_results, width=40)
# Diagnostics
print_info(' Diagnostics')
try_and_print(message='AIDA64...', function=update_aida64, other_results=other_results, width=40)
@ -44,8 +44,9 @@ if __name__ == '__main__':
try_and_print(message='ERUNT...', function=update_erunt, other_results=other_results, width=40)
try_and_print(message='HitmanPro...', function=update_hitmanpro, other_results=other_results, width=40)
try_and_print(message='HWiNFO...', function=update_hwinfo, other_results=other_results, width=40)
try_and_print(message='NirCmd...', function=update_nircmd, other_results=other_results, width=40)
try_and_print(message='ProduKey...', function=update_produkey, other_results=other_results, width=40)
# Drivers
print_info(' Drivers')
try_and_print(message='Intel RST...', function=update_intel_rst, other_results=other_results, width=40)
@ -53,14 +54,14 @@ if __name__ == '__main__':
try_and_print(message='Samsing Magician...', function=update_samsung_magician, other_results=other_results, width=40)
if update_sdio:
try_and_print(message='Snappy Driver Installer Origin...', function=update_sdi_origin, other_results=other_results, width=40)
# Installers
print_info(' Installers')
try_and_print(message='Adobe Reader DC...', function=update_adobe_reader_dc, other_results=other_results, width=40)
try_and_print(message='MS Office...', function=update_office, other_results=other_results, width=40)
try_and_print(message='Visual C++ Runtimes...', function=update_vcredists, other_results=other_results, width=40)
update_all_ninite(other_results=other_results, width=40)
# Misc
print_info(' Misc')
try_and_print(message='Caffeine...', function=update_caffeine, other_results=other_results, width=40)
@ -72,22 +73,22 @@ if __name__ == '__main__':
try_and_print(message='Notepad++...', function=update_notepadplusplus, other_results=other_results, width=40)
try_and_print(message='WizTree...', function=update_wiztree, other_results=other_results, width=40)
try_and_print(message='XMPlay...', function=update_xmplay, other_results=other_results, width=40)
# Repairs
print_info(' Repairs')
try_and_print(message='AdwCleaner...', function=update_adwcleaner, other_results=other_results, width=40)
try_and_print(message='KVRT...', function=update_kvrt, other_results=other_results, width=40)
try_and_print(message='RKill...', function=update_rkill, other_results=other_results, width=40)
try_and_print(message='TDSSKiller...', function=update_tdsskiller, other_results=other_results, width=40)
# Uninstallers
print_info(' Uninstallers')
try_and_print(message='IObit Uninstaller...', function=update_iobit_uninstaller, other_results=other_results, width=40)
## Review ##
print_standard('Please review the results and download/extract any missing items to .cbin')
pause('Press Enter to compress the .cbin items')
## Compress ##
print_success('Compressing tools')
print_info(' _Drivers')
@ -108,12 +109,12 @@ if __name__ == '__main__':
other_results = other_results,
width=40,
item = item)
## Search for network Office/QuickBooks installers & add to LAUNCHERS
print_success('Scanning for network installers')
scan_for_net_installers(OFFICE_SERVER, 'Office', min_year=2010)
scan_for_net_installers(QUICKBOOKS_SERVER, 'QuickBooks', min_year=2015)
## Generate Launchers
print_success('Generating launchers')
for section in sorted(LAUNCHERS.keys()):
@ -122,7 +123,7 @@ if __name__ == '__main__':
try_and_print(message=name, function=generate_launcher,
section=section, name=name, options=options,
other_results=other_results, width=40)
# Rename "Copy WizardKit.cmd" (if necessary)
source = r'{}\Scripts\Copy WizardKit.cmd'.format(global_vars['BinDir'])
dest = r'{}\Copy {}.cmd'.format(global_vars['BaseDir'], KIT_NAME_FULL)
@ -132,7 +133,7 @@ if __name__ == '__main__':
except Exception:
print_error(' Failed to rename "{}.cmd" to "{}.cmd"'.format(
'Copy WizardKit', KIT_NAME_FULL))
# Done
print_standard('\nDone.')
pause("Press Enter to exit...")