Merge branch '1201' into dev

This commit is contained in:
2Shirt 2018-09-25 21:08:34 -06:00
commit 9f5a8ace72
Signed by: 2Shirt
GPG key ID: 152FAC923B0E132C
34 changed files with 4216 additions and 299 deletions

View file

@ -279,9 +279,9 @@ rem Create VB script
mkdir "%bin%\tmp" 2>nul
echo Set UAC = CreateObject^("Shell.Application"^) > "%bin%\tmp\Elevate.vbs"
if defined L_NCMD (
echo UAC.ShellExecute "%PYTHON%", """%script%""", "", "runas", 3 >> "%bin%\tmp\Elevate.vbs"
echo UAC.ShellExecute "%PYTHON%", """%script%"" %L_ARGS%", "", "runas", 3 >> "%bin%\tmp\Elevate.vbs"
) else (
echo UAC.ShellExecute "%CON%", "-run ""%PYTHON%"" ""%script%"" -new_console:n", "", "runas", 1 >> "%bin%\tmp\Elevate.vbs"
echo UAC.ShellExecute "%CON%", "-run ""%PYTHON%"" ""%script%"" %L_ARGS% -new_console:n", "", "runas", 1 >> "%bin%\tmp\Elevate.vbs"
)
rem Run
@ -290,9 +290,9 @@ goto Exit
:LaunchPyScriptUser
if defined L_NCMD (
start "" "%PYTHON%" "%script%" || goto ErrorUnknown
start "" "%PYTHON%" "%script%" %L_ARGS% || goto ErrorUnknown
) else (
start "" "%CON%" -run "%PYTHON%" "%script%" -new_console:n || goto ErrorUnknown
start "" "%CON%" -run "%PYTHON%" "%script%" %L_ARGS% -new_console:n || goto ErrorUnknown
)
goto Exit
@ -332,7 +332,7 @@ echo. Executable Working Dir Program Args [L_7ZIP] [L_ELEV] [L__CLI]
echo. Folder Folder '.' [L_7ZIP]
echo. Office Year Product [L_7ZIP]
echo. PSScript Scripts Script [L_7ZIP] [L_ELEV] [L_NCMD]
echo. PyScript Scripts Script [L_7ZIP] [L_ELEV] [L_NCMD]
echo. PyScript Scripts Script Args [L_7ZIP] [L_ELEV] [L_NCMD]
echo. QuickBooks Year Product [L_7ZIP]
echo.
echo.L_7ZIP: Extra arguments for 7-Zip (in the :ExtractCBin label)

View file

@ -17,7 +17,7 @@ call :SetTitle Launcher
rem EXTRA_CODE
:DefineLaunch
:: See %bin%\SCripts\Launch.cmd for details under :Usage label
:: See %bin%\Scripts\Launch.cmd for details under :Usage label
set L_TYPE=
set L_PATH=
set L_ITEM=
@ -110,4 +110,4 @@ goto Exit
:: Cleanup and exit ::
:Exit
endlocal
exit /b %errorlevel%
exit /b %errorlevel%

View file

@ -2,6 +2,8 @@
from functions.common import *
from operator import itemgetter
# Define other_results for later try_and_print
browser_data = {}
other_results = {
@ -101,6 +103,52 @@ SUPPORTED_BROWSERS = {
},
}
def archive_all_users():
"""Create backups for all browsers for all users."""
users_root = r'{}\Users'.format(global_vars['Env']['SYSTEMDRIVE'])
user_envs = []
# Build list of valid users
for user_name in os.listdir(users_root):
valid_user = True
if user_name in ('Default', 'Default User'):
# Skip default users
continue
user_path = os.path.join(users_root, user_name)
appdata_local = os.path.join(user_path, r'AppData\Local')
appdata_roaming = os.path.join(user_path, r'AppData\Roaming')
valid_user &= os.path.exists(appdata_local)
valid_user &= os.path.exists(appdata_roaming)
if valid_user:
user_envs.append({
'USERNAME': user_name,
'USERPROFILE': user_path,
'APPDATA': appdata_roaming,
'LOCALAPPDATA': appdata_local})
# Backup browsers for all valid users
print_info('Backing up browsers')
for fake_env in sorted(user_envs, key=itemgetter('USERPROFILE')):
print_standard(fake_env['USERNAME'])
for b_k, b_v in sorted(SUPPORTED_BROWSERS.items()):
if b_k == 'Mozilla Firefox Dev':
continue
source_path = b_v['user_data_path'].format(**fake_env)
if not os.path.exists(source_path):
continue
source_items = source_path + '*'
archive_path = r'{BackupDir}\Browsers ({USERNAME})'.format(
**global_vars, **fake_env)
os.makedirs(archive_path, exist_ok=True)
archive_path += r'\{}.7z'.format(b_k)
cmd = [
global_vars['Tools']['SevenZip'],
'a', '-aoa', '-bso0', '-bse0', '-mx=1',
archive_path, source_items]
try_and_print(message=' {}...'.format(b_k),
function=run_program, cmd=cmd)
print_standard(' ')
def archive_browser(name):
"""Create backup of Browser saved in the BackupDir."""
source = '{}*'.format(browser_data[name]['user_data_path'])
@ -111,6 +159,7 @@ def archive_browser(name):
cmd = [
global_vars['Tools']['SevenZip'],
'a', '-aoa', '-bso0', '-bse0', '-mx=1',
'-mhe=on', '-p{}'.format(ARCHIVE_PASSWORD),
archive, source]
run_program(cmd)
@ -138,7 +187,7 @@ def clean_chromium_profile(profile):
def clean_internet_explorer(**kwargs):
"""Uses the built-in function to reset IE and sets the homepage.
NOTE: kwargs set but unused as a workaround."""
kill_process('iexplore.exe')
run_program(['rundll32.exe', 'inetcpl.cpl,ResetIEtoDefaults'], check=False)
@ -182,11 +231,11 @@ def clean_mozilla_profile(profile):
def get_browser_details(name):
"""Get installation status and profile details for all supported browsers."""
browser = SUPPORTED_BROWSERS[name].copy()
# Update user_data_path
browser['user_data_path'] = browser['user_data_path'].format(
**global_vars['Env'])
# Find executable (if multiple files are found, the last one is used)
exe_path = None
num_installs = 0
@ -197,7 +246,7 @@ def get_browser_details(name):
if os.path.exists(test_path):
num_installs += 1
exe_path = test_path
# Find profile(s)
profiles = []
if browser['base'] == 'ie':
@ -230,7 +279,7 @@ def get_browser_details(name):
if os.path.exists(browser['user_data_path']):
profiles.append(
{'name': 'Default', 'path': browser['user_data_path']})
# Get homepages
if browser['base'] == 'ie':
# IE is set to only have one profile above
@ -239,14 +288,14 @@ def get_browser_details(name):
for profile in profiles:
prefs_path = r'{path}\prefs.js'.format(**profile)
profile['homepages'] = get_mozilla_homepages(prefs_path=prefs_path)
# Add to browser_data
browser_data[name] = browser
browser_data[name].update({
'exe_path': exe_path,
'profiles': profiles,
})
# Raise installation warnings (if any)
if num_installs == 0:
raise NotInstalledError
@ -305,7 +354,7 @@ def get_mozilla_homepages(prefs_path):
homepages = search.group(1).split('|')
except Exception:
pass
return homepages
def get_mozilla_profiles(search_path, dev=False):
@ -332,9 +381,11 @@ def get_mozilla_profiles(search_path, dev=False):
return profiles
def install_adblock(indent=8, width=32):
def install_adblock(indent=8, width=32, just_firefox=False):
"""Install adblock for all supported browsers."""
for browser in sorted(browser_data):
if just_firefox and browser_data[browser]['base'] != 'mozilla':
continue
exe_path = browser_data[browser].get('exe_path', None)
function=run_program
if not exe_path:
@ -400,7 +451,7 @@ def install_adblock(indent=8, width=32):
def list_homepages(indent=8, width=32):
"""List current homepages for reference."""
for browser in [k for k, v in sorted(browser_data.items()) if v['exe_path']]:
# Skip Chromium-based browsers
if browser_data[browser]['base'] == 'chromium':
@ -444,9 +495,11 @@ def reset_browsers(indent=8, width=32):
indent=indent, width=width, function=function,
other_results=other_results, profile=profile)
def scan_for_browsers():
def scan_for_browsers(just_firefox=False):
"""Scan system for any supported browsers."""
for name in sorted(SUPPORTED_BROWSERS):
for name, details in sorted(SUPPORTED_BROWSERS.items()):
if just_firefox and details['base'] != 'mozilla':
continue
try_and_print(message='{}...'.format(name),
function=get_browser_details, cs='Detected',
other_results=other_results, name=name)

View file

@ -23,8 +23,8 @@ def cleanup_adwcleaner():
# Main folder
if os.path.exists(source_path):
os.makedirs(global_vars['ProgBackupDir'], exist_ok=True)
dest_name = r'{ProgBackupDir}\AdwCleaner_{Date-Time}'.format(
os.makedirs(global_vars['LogDir'], exist_ok=True)
dest_name = r'{LogDir}\{Date}\AdwCleaner'.format(
**global_vars)
dest_name = non_clobber_rename(dest_name)
shutil.move(source_path, dest_name)
@ -68,9 +68,76 @@ def cleanup_cbs(dest_folder):
r'{}\CbsPersist*'.format(temp_folder)]
run_program(cmd)
def cleanup_d7ii():
"""Sort d7II logs and remove temp items."""
d7_path = r'{}\d7II'.format(global_vars['ClientDir'])
d7_reports = r'{}_Reports'.format(d7_path)
d7_temp = r'{}\Temp'.format(d7_path)
# Logs & Reports
if os.path.exists(d7_reports):
for entry in os.scandir(d7_reports):
r = re.match(r'(\d+)-(\d+)-(\d+)', entry.name)
d7_date = '{}-{:02d}-{:02d}'.format(
r.group(1), int(r.group(2)), int(r.group(3)))
d7_mlogs = r'{}\Malware Logs'.format(entry.path)
log_dest = r'{SYSTEMDRIVE}\{prefix}\Info\{date}'.format(
prefix=KIT_NAME_SHORT,
date=d7_date,
**global_vars['Env'])
# Remove empty folders
for f in ('Malware Logs', 'Screen Shots'):
try:
os.rmdir(r'{}\{}'.format(entry.path, f))
except FileNotFoundError:
pass
except OSError:
pass
# Malware Logs
if os.path.exists(d7_mlogs):
for m_entry in os.scandir(d7_mlogs):
prefix = ''
if m_entry.name == 'MalwareScan_Report.txt':
prefix = 'd7II_'
dest_path = r'{log_dest}\{prefix}{name}'.format(
log_dest=log_dest,
prefix=prefix,
name=m_entry.name)
dest_path = non_clobber_rename(dest_path)
shutil.move(entry.path, dest_path)
try:
os.rmdir(d7_mlogs)
except OSError:
pass
# Other items
for o_entry in os.scandir(entry.path):
dest_path = r'{log_dest}\d7II_{name}'.format(
log_dest=log_dest,
name=m_entry.name)
dest_path = non_clobber_rename(dest_path)
shutil.move(entry.path, dest_path)
# Remove folder if empty
try:
os.rmdir(entry.path)
except OSError:
pass
# Temp items
if os.path.exists(d7_path):
if os.path.exists(d7_temp):
shutil.rmtree(d7_temp)
try:
os.rmdir(d7_path)
except OSError:
pass
def cleanup_desktop():
"""Move known backup files and reports into the ClientDir."""
dest_folder = r'{ProgBackupDir}\Desktop_{Date-Time}'.format(**global_vars)
dest_folder = r'{ProgBackupDir}\{Date}\Desktop'.format(**global_vars)
os.makedirs(dest_folder, exist_ok=True)
desktop_path = r'{USERPROFILE}\Desktop'.format(**global_vars['Env'])
@ -87,5 +154,49 @@ def cleanup_desktop():
except OSError:
pass
def cleanup_emsisoft():
"""Remove EmsisoftCmd files from drive root."""
source_path = r'{}\EmsisoftCmd'.format(global_vars['Env']['SYSTEMDRIVE'])
source_quarantine = r'{}\Quarantine'.format(source_path)
# Quarantine
if os.path.exists(source_quarantine):
os.makedirs(global_vars['QuarantineDir'], exist_ok=True)
dest_name = r'{QuarantineDir}\Emsisoft_{Date-Time}'.format(
**global_vars)
dest_name = non_clobber_rename(dest_name)
shutil.move(source_quarantine, dest_name)
# Remove program
if os.path.exists(source_path):
shutil.rmtree(source_path)
def cleanup_regbackups():
"""Move d7ii regbackups into backup folder."""
source_path = r'{}\Support\RegBackups'.format(
global_vars['Env']['SYSTEMDRIVE'])
# Bail early
if not os.path.exists(source_path):
return
# Move to backup folder
for entry in os.scandir(source_path):
os.makedirs(global_vars['ProgBackupDir'], exist_ok=True)
dest_path = r'{ProgBackupDir}\{Date}\Registry\{name}'.format(
name=entry.name,
**global_vars)
dest_path = non_clobber_rename(dest_path)
shutil.move(entry.path, dest_path)
# Delete source folders if empty
try:
os.rmdir(source_path)
os.rmdir(r'{}\Support'.format(global_vars['Env']['SYSTEMDRIVE']))
except OSError:
pass
if __name__ == '__main__':
print("This file is not meant to be called directly.")
# vim: sts=4 sw=4 ts=4

View file

@ -162,7 +162,7 @@ def exit_script(return_value=0):
# Open Log (if it exists)
log = global_vars.get('LogFile', '')
if log and os.path.exists(log) and psutil.WINDOWS:
if log and os.path.exists(log) and psutil.WINDOWS and ENABLED_OPEN_LOGS:
try:
extract_item('NotepadPlusPlus', silent=True)
popen_program(

View file

@ -162,7 +162,7 @@ def get_installed_office():
def get_shell_path(folder, user='current'):
"""Get shell path using SHGetKnownFolderPath via knownpaths, returns str.
NOTE: Only works for the current user.
Code based on https://gist.github.com/mkropat/7550097
"""
@ -175,14 +175,14 @@ def get_shell_path(folder, user='current'):
except AttributeError:
# Unknown folder ID, ignore and return None
pass
if folderid:
try:
path = knownpaths.get_path(folderid, getattr(knownpaths.UserHandle, user))
except PathNotFoundError:
# Folder not found, ignore and return None
pass
return path
def get_user_data_paths(user):
@ -196,7 +196,7 @@ def get_user_data_paths(user):
'Extra Folders': {},
}
unload_hive = False
if user['Name'] == global_vars['Env']['USERNAME']:
# We can use SHGetKnownFolderPath for the current user
paths['Profile']['Path'] = get_shell_path('Profile')
@ -212,7 +212,7 @@ def get_user_data_paths(user):
except Exception:
# Profile path not found, leaving as None.
pass
# Shell folders (Prep)
if not reg_path_exists(HKU, hive_path) and paths['Profile']['Path']:
# User not logged-in, loading hive
@ -226,7 +226,7 @@ def get_user_data_paths(user):
except subprocess.CalledProcessError:
# Failed to load user hive
pass
# Shell folders
shell_folders = r'{}\{}'.format(hive_path, REG_SHELL_FOLDERS)
if (reg_path_exists(HKU, hive_path)
@ -252,7 +252,7 @@ def get_user_data_paths(user):
if (folder not in paths['Shell Folders']
and os.path.exists(folder_path)):
paths['Shell Folders'][folder] = {'Path': folder_path}
# Extra folders
if paths['Profile']['Path']:
for folder in EXTRA_FOLDERS:
@ -260,12 +260,12 @@ def get_user_data_paths(user):
folder=folder, **paths['Profile'])
if os.path.exists(folder_path):
paths['Extra Folders'][folder] = {'Path': folder_path}
# Shell folders (cleanup)
if unload_hive:
cmd = ['reg', 'unload', r'HKU\{}'.format(TMP_HIVE_PATH)]
run_program(cmd, check=False)
# Done
return paths
@ -277,7 +277,7 @@ def get_user_folder_sizes(users):
with winreg.OpenKey(HKCU,
r'Software\Sysinternals\Du', access=winreg.KEY_WRITE) as key:
winreg.SetValueEx(key, 'EulaAccepted', 0, winreg.REG_DWORD, 1)
for u in users:
u.update(get_user_data_paths(u))
if u['Profile']['Path']:
@ -292,7 +292,7 @@ def get_user_folder_sizes(users):
def get_user_list():
"""Get user list via WMIC, returns list of dicts."""
users = []
# Get user info from WMI
cmd = ['wmic', 'useraccount', 'get', '/format:csv']
try:
@ -300,10 +300,10 @@ def get_user_list():
except subprocess.CalledProcessError:
# Meh, return empty list to avoid a full crash
return users
entries = out.stdout.decode().splitlines()
entries = [e.strip().split(',') for e in entries if e.strip()]
# Add user(s) to dict
keys = entries[0]
for e in entries[1:]:
@ -314,10 +314,10 @@ def get_user_list():
# Assume SIDs ending with 1000+ are "Standard" and others are "System"
e['Type'] = 'Standard' if re.search(r'-1\d+$', e['SID']) else 'System'
users.append(e)
# Sort list
users.sort(key=itemgetter('Name'))
# Done
return users
@ -368,26 +368,38 @@ def run_aida64():
'/TEXT', '/SILENT', '/SAFEST']
run_program(cmd, check=False)
def run_bleachbit():
def run_bleachbit(cleaners=None, preview=True):
"""Run BleachBit preview and save log.
This is a preview so no files should be deleted."""
if not os.path.exists(global_vars['LogDir']+r'\BleachBit.log'):
extract_item('BleachBit', silent=True)
cmd = [global_vars['Tools']['BleachBit'], '--preview', '--preset']
out = run_program(cmd, check=False)
# Save stderr
if out.stderr.decode().splitlines():
with open(global_vars['LogDir']+r'\BleachBit.err', 'a',
encoding='utf-8') as f:
for line in out.stderr.decode().splitlines():
f.write(line.strip() + '\n')
# Save stdout
with open(global_vars['LogDir']+r'\BleachBit.log', 'a',
encoding='utf-8') as f:
for line in out.stdout.decode().splitlines():
If preview is True then no files should be deleted."""
error_path = r'{}\BleachBit.err'.format(global_vars['LogDir'])
log_path = error_path.replace('err', 'log')
extract_item('BleachBit', silent=True)
# Safety check
if not cleaners:
# Disable cleaning and use preset config
cleaners = ['--preset']
preview = True
# Run
cmd = [
global_vars['Tools']['BleachBit'],
'--preview' if preview else '--clean']
cmd.extend(cleaners)
out = run_program(cmd, check=False)
# Save stderr
if out.stderr.decode().splitlines():
with open(error_path, 'a', encoding='utf-8') as f:
for line in out.stderr.decode().splitlines():
f.write(line.strip() + '\n')
# Save stdout
with open(log_path, 'a', encoding='utf-8') as f:
for line in out.stdout.decode().splitlines():
f.write(line.strip() + '\n')
def show_disk_usage(disk):
"""Show free and used space for a specified disk."""
print_standard('{:5}'.format(disk.device.replace('/', ' ')),

View file

@ -1,6 +1,8 @@
# Wizard Kit: Functions - Setup
from functions.common import *
from functions.update import *
from settings.sources import *
# STATIC VARIABLES
HKCU = winreg.HKEY_CURRENT_USER
@ -193,7 +195,7 @@ def write_registry_settings(settings, all_users=False):
if 'WOW64_32' in v:
access = access | winreg.KEY_WOW64_32KEY
winreg.CreateKeyEx(hive, k, 0, access)
# Create values
with winreg.OpenKeyEx(hive, k, 0, access) as key:
for name, value in v.get('DWORD Items', {}).items():
@ -250,6 +252,30 @@ def install_classicstart_skin():
os.makedirs(dest_path, exist_ok=True)
shutil.copy(source, dest)
def install_eset_nod32_av(scan_pups=True):
"""Install ESET NOD32 AV with custom config."""
extract_item('ESETConfigs', silent=True)
config_file = '{BinDir}\ESETConfigs\{config_file}.xml'.format(
config_file='eset-config' if scan_pups else 'eset-config-no-pup',
**global_vars)
# Download
result = try_and_print(message='Downloading Setup...', cs='Done',
other_results=OTHER_RESULTS, function=download_generic,
out_dir=global_vars['ClientDir'],
out_name='eav_nt64.exe',
source_url=SOURCE_URLS['ESET NOD32'])
if not result['CS']:
raise GenericError('Failed to download ESET NOD32')
# Install
cmd = [r'{ClientDir}\eav_nt64.exe'.format(**global_vars),
'--silent', '--accepteula', '--msi-property',
'PRODUCTTYPE=eav', 'PRODUCT_LANG=1033', 'PRODUCT_LANG_CODE=en-US',
'ADMINCFG="{}"'.format(config_file)]
try_and_print(message='Installing ESET NOD32 AV...',
other_results=OTHER_RESULTS, function=run_program, cmd=cmd)
def install_firefox_extensions():
"""Update registry to install Firefox extensions for all users."""
dist_path = r'{PROGRAMFILES}\Mozilla Firefox\distribution\extensions'.format(
@ -261,7 +287,7 @@ def install_firefox_extensions():
# Update registry
write_registry_settings(SETTINGS_MOZILLA_FIREFOX_32, all_users=True)
write_registry_settings(SETTINGS_MOZILLA_FIREFOX_64, all_users=True)
# Extract extension(s) to distribution folder
cmd = [
global_vars['Tools']['SevenZip'], 'e', '-aos', '-bso0', '-bse0',

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,13 +425,13 @@ 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')
@ -439,21 +439,21 @@ 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 +462,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 +477,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 +487,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 +509,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 +520,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 +533,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 +551,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,21 +563,28 @@ 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'])
def update_eset_config():
"""Copy config files to .cbin before compress_item"""
dest = r'{}\ESETConfigs'.format(global_vars['cbindir'])
include_path = r'{}\_include\ESETConfigs'.format(global_vars['CBinDir'])
if os.path.exists(include_path):
shutil.copytree(include_path, dest)
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'])
@ -605,7 +612,7 @@ def update_office():
def update_classic_start_skin():
# Remove existing folders
remove_from_kit('ClassicStartSkin')
# Download
download_generic(
r'{}\ClassicStartSkin'.format(global_vars['CBinDir']),
@ -615,13 +622,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 +642,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 +669,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 +686,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 +703,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 +725,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 +735,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 +772,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 +811,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 +823,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 +832,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 +845,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 +858,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 +871,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,36 +885,59 @@ 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']),
'TDSSKiller.exe',
SOURCE_URLS['TDSSKiller'])
def update_winaiorepair():
# Stop running processes
kill_process('Repair_Windows.exe')
# Remove existing folders
remove_from_kit('WinAIO Repair')
# Download
download_to_temp('winaio.zip', SOURCE_URLS['WinAIO Repair'])
# Extract
extract_temp_to_cbin('winaio.zip', 'WinAIO Repair')
dest = r'{}\WinAIO Repair'.format(global_vars['CBinDir'])
for item in os.scandir(r'{}\Tweaking.com - Windows Repair'.format(dest)):
dest_item = '{}\{}'.format(dest, item.name)
if not os.path.exists(dest_item):
shutil.move(item.path, dest_item)
shutil.rmtree(
r'{}\WinAIO Repair\Tweaking.com - Windows Repair'.format(global_vars['CBinDir']))
# Cleanup
remove_from_temp('winaio.zip')
## Uninstallers ##
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

@ -0,0 +1,26 @@
# Wizard Kit: Install ESET NOD32 AV
import os
import sys
# Init
os.chdir(os.path.dirname(os.path.realpath(__file__)))
sys.path.append(os.getcwd())
from functions.setup import *
init_global_vars()
os.system('title {}: Install ESET NOD32 AV'.format(KIT_NAME_FULL))
global_vars['LogFile'] = r'{LogDir}\Install ESET NOD32 AV.log'.format(**global_vars)
if __name__ == '__main__':
try:
stay_awake()
clear_screen()
print_info('{}: Install ESET NOD32 AV\n'.format(KIT_NAME_FULL))
scan_pups = ask('Enable PUP scans in ESET?')
install_eset_nod32_av(scan_pups)
print_standard('\nDone.')
exit_script()
except SystemExit:
pass
except:
major_exception()

View file

@ -10,6 +10,7 @@ from functions.setup import *
init_global_vars()
os.system('title {}: SW Bundle Tool'.format(KIT_NAME_FULL))
global_vars['LogFile'] = r'{LogDir}\Install SW Bundle.log'.format(**global_vars)
D7_MODE = 'd7mode' in sys.argv
if __name__ == '__main__':
try:
@ -25,11 +26,15 @@ if __name__ == '__main__':
'GenericRepair': 'Repaired',
'UnsupportedOSError': 'Unsupported OS',
}}
answer_extensions = ask('Install Extensions?')
answer_adobe_reader = ask('Install Adobe Reader?')
answer_vcr = ask('Install Visual C++ Runtimes?')
answer_ninite = ask('Install Ninite Bundle?')
if answer_ninite and global_vars['OS']['Version'] in ['7']:
answer_extensions = D7_MODE or ask('Install Extensions?')
if D7_MODE:
answer_adobe_reader = False
else:
answer_adobe_reader = ask('Install Adobe Reader?')
answer_vcr = D7_MODE or ask('Install Visual C++ Runtimes?')
answer_ninite = D7_MODE or ask('Install Ninite Bundle?')
if not D7_MODE and (
answer_ninite and global_vars['OS']['Version'] in ['7']):
# Vista is dead, not going to check for it
answer_mse = ask('Install MSE?')
else:
@ -62,3 +67,5 @@ if __name__ == '__main__':
pass
except:
major_exception()
# vim: sts=4 sw=4 ts=4

48
.bin/Scripts/post_d7.py Normal file
View file

@ -0,0 +1,48 @@
# Wizard Kit: Post-d7II items
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.cleanup import *
from functions.setup import *
init_global_vars()
os.system('title {}: Post-d7II Work'.format(KIT_NAME_FULL))
global_vars['LogFile'] = r'{LogDir}\User Checklist ({USERNAME}).log'.format(
**global_vars, **global_vars['Env'])
if __name__ == '__main__':
try:
stay_awake()
clear_screen()
print_info('{}: Post-d7II Work\n'.format(KIT_NAME_FULL))
other_results = {
'Warning': {
'NotInstalledError': 'Not installed',
'NoProfilesError': 'No profiles found',
}}
# Scan for Firefox browsers
print_info('Scanning for Firefox browsers')
scan_for_browsers(just_firefox=True)
# Install uBlock Origin
print_info('Installing uBlock Origin')
install_adblock(just_firefox=True)
# Cleanup
print_info('Cleanup')
try_and_print(message='d7II...',
function=cleanup_d7ii, cs='Done')
# Done
print_standard('\nDone.')
pause('Press Enter to exit...')
exit_script()
except SystemExit:
pass
except:
major_exception()

View file

@ -0,0 +1,54 @@
# Wizard Kit: Reset Browsers
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.cleanup import *
from functions.setup import *
init_global_vars()
os.system('title {}: Browser Reset Tool'.format(KIT_NAME_FULL))
global_vars['LogFile'] = r'{LogDir}\Browser Reset ({USERNAME}).log'.format(
**global_vars, **global_vars['Env'])
D7_MODE = 'd7mode' in sys.argv
if __name__ == '__main__':
try:
stay_awake()
clear_screen()
print_info('{}: Browser Reset\n'.format(KIT_NAME_FULL))
other_results = {
'Warning': {
'NotInstalledError': 'Not installed',
'NoProfilesError': 'No profiles found',
}}
# Bail early
if not D7_MODE and not ask('Reset browsers to safe defaults first?'):
exit_script()
# 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
print_info('Resetting browsers')
reset_browsers()
# Done
exit_script()
except SystemExit:
pass
except:
major_exception()

View file

@ -8,22 +8,62 @@ LAUNCHERS = {
'L_ITEM': 'activate.py',
'L_ELEV': 'True',
},
'd7II': {
'L_TYPE': 'Executable',
'L_PATH': 'd7II',
'L_ITEM': 'd7II.exe',
},
'Install ESET NOD32 AV': {
'L_TYPE': 'PyScript',
'L_PATH': 'Scripts',
'L_ITEM': 'install_eset_nod32_av.py',
'L_ELEV': 'True',
},
'System Checklist': {
'L_TYPE': 'PyScript',
'L_PATH': 'Scripts',
'L_ITEM': 'system_checklist.py',
'L_ELEV': 'True',
},
'User Checklist': {
'L_TYPE': 'PyScript',
'L_PATH': 'Scripts',
'L_ITEM': 'user_checklist.py',
},
},
r'.bin\Scripts\launchers_for_d7': {
'Browser Reset': {
'L_TYPE': 'PyScript',
'L_PATH': 'Scripts',
'L_ITEM': 'reset_browsers.py',
'L_ARGS': 'd7mode',
},
'Install SW Bundle': {
'L_TYPE': 'PyScript',
'L_PATH': 'Scripts',
'L_ITEM': 'install_sw_bundle.py',
'L_ARGS': 'd7mode',
'L_ELEV': 'True',
},
'System Checklist': {
'L_TYPE': 'PyScript',
'L_PATH': 'Scripts',
'L_ITEM': 'system_checklist.py',
'L_ARGS': 'd7mode',
'L_ELEV': 'True',
},
'System Diagnostics': {
'L_TYPE': 'PyScript',
'L_PATH': 'Scripts',
'L_ITEM': 'system_diagnostics.py',
'L_ARGS': 'd7mode',
'L_ELEV': 'True',
},
'User Checklist': {
'L_TYPE': 'PyScript',
'L_PATH': 'Scripts',
'L_ITEM': 'user_checklist.py',
'L_ARGS': 'd7mode',
},
},
r'Data Recovery': {
@ -49,6 +89,11 @@ LAUNCHERS = {
},
},
r'Data Transfers': {
"Fab's Autobackup Pro": {
'L_TYPE': 'Executable',
'L_PATH': 'AutoBackupPro',
'L_ITEM': 'autobackup6pro.exe',
},
'FastCopy (as ADMIN)': {
'L_TYPE': 'Executable',
'L_PATH': 'FastCopy',
@ -161,6 +206,12 @@ LAUNCHERS = {
r'mkdir "%q_dir%">nul 2>&1',
],
},
'Mac & Linux Reader': {
'L_TYPE': 'Executable',
'L_PATH': 'LinuxReader',
'L_ITEM': 'LinuxReader.exe',
'L_ELEV': 'True',
},
'Transferred Keys': {
'L_TYPE': 'PyScript',
'L_PATH': 'Scripts',
@ -188,17 +239,10 @@ LAUNCHERS = {
},
},
r'Diagnostics': {
'HWiNFO': {
'AIDA64': {
'L_TYPE': 'Executable',
'L_PATH': 'HWiNFO',
'L_ITEM': 'HWiNFO.exe',
'Extra Code': [
r'for %%a in (32 64) do (',
r' copy /y "%bin%\HWiNFO\general.ini" "%bin%\HWiNFO\HWiNFO%%a.ini"',
r' (echo SensorsOnly=0)>>"%bin%\HWiNFO\HWiNFO%%a.ini"',
r' (echo SummaryOnly=0)>>"%bin%\HWiNFO\HWiNFO%%a.ini"',
r')',
],
'L_PATH': 'AIDA64',
'L_ITEM': 'aida64.exe',
},
'ProduKey': {
'L_TYPE': 'Executable',
@ -212,13 +256,14 @@ LAUNCHERS = {
r')',
],
},
'System Diagnostics': {
'L_TYPE': 'PyScript',
'L_PATH': 'Scripts',
'L_ITEM': 'system_diagnostics.py',
'L_ELEV': 'True',
},
},
r'Diagnostics\Extras': {
'AIDA64': {
'L_TYPE': 'Executable',
'L_PATH': 'AIDA64',
'L_ITEM': 'aida64.exe',
},
'Autoruns (with VirusTotal Scan)': {
'L_TYPE': 'Executable',
'L_PATH': 'Autoruns',
@ -265,6 +310,18 @@ LAUNCHERS = {
r'call "%bin%\Scripts\init_client_dir.cmd" /Info',
],
},
'HWiNFO': {
'L_TYPE': 'Executable',
'L_PATH': 'HWiNFO',
'L_ITEM': 'HWiNFO.exe',
'Extra Code': [
r'for %%a in (32 64) do (',
r' copy /y "%bin%\HWiNFO\general.ini" "%bin%\HWiNFO\HWiNFO%%a.ini"',
r' (echo SensorsOnly=0)>>"%bin%\HWiNFO\HWiNFO%%a.ini"',
r' (echo SummaryOnly=0)>>"%bin%\HWiNFO\HWiNFO%%a.ini"',
r')',
],
},
'HWiNFO (Sensors)': {
'L_TYPE': 'Executable',
'L_PATH': 'HWiNFO',
@ -503,6 +560,11 @@ LAUNCHERS = {
'L_ITEM': 'dism.py',
'L_ELEV': 'True',
},
'ESET Online Scanner': {
'L_TYPE': 'Executable',
'L_PATH': 'ESET',
'L_ITEM': 'ESET.exe',
},
'KVRT': {
'L_TYPE': 'Executable',
'L_PATH': 'KVRT',
@ -552,6 +614,12 @@ LAUNCHERS = {
r'mkdir "%q_dir%">nul 2>&1',
],
},
'WinAIO Repair': {
'L_TYPE': 'Executable',
'L_PATH': 'WinAIO Repair',
'L_ITEM': 'Repair_Windows.exe',
'L_ELEV': 'True',
},
},
r'Uninstallers': {
'IObit Uninstaller': {

View file

@ -1,8 +1,9 @@
# Wizard Kit: Settings - Main / Branding
# Features
ENABLED_UPLOAD_DATA = True
ENABLED_OPEN_LOGS = False
ENABLED_TICKET_NUMBERS = False
ENABLED_UPLOAD_DATA = True
# STATIC VARIABLES (also used by BASH and BATCH files)
## NOTE: There are no spaces around the = for easier parsing in BASH and BATCH
@ -10,7 +11,7 @@ ENABLED_TICKET_NUMBERS = False
ARCHIVE_PASSWORD='Sorted1201'
KIT_NAME_FULL='1201-WizardKit'
KIT_NAME_SHORT='1201'
SUPPORT_MESSAGE='Please let us know by opening an issue on Gogs'
SUPPORT_MESSAGE='Please let support know by opening an issue on Gogs'
# osTicket
DB_HOST='osticket.1201.com'
DB_NAME='osticket'
@ -31,8 +32,8 @@ QUICKBOOKS_SERVER_IP='10.11.1.20'
LINUX_TIME_ZONE='America/Los_Angeles' # See 'timedatectl list-timezones' for valid values
WINDOWS_TIME_ZONE='Pacific Standard Time' # See 'tzutil /l' for valid values
# WiFi
WIFI_SSID='HamsterFi'
WIFI_PASSWORD='16Hamsters'
WIFI_SSID='1201 Computers'
WIFI_PASSWORD='12011201'
# SERVER VARIABLES
## NOTE: Windows can only use one user per server. This means that if

View file

@ -13,6 +13,7 @@ SOURCE_URLS = {
'ClassicStartSkin': 'http://www.classicshell.net/forum/download/file.php?id=3001&sid=9a195960d98fd754867dcb63d9315335',
'Du': 'https://download.sysinternals.com/files/DU.zip',
'ERUNT': 'http://www.aumha.org/downloads/erunt.zip',
'ESET NOD32 AV': 'https://download.eset.com/com/eset/apps/home/eav/windows/latest/eav_nt64.exe',
'Everything32': 'https://www.voidtools.com/Everything-1.4.1.895.x86.zip',
'Everything64': 'https://www.voidtools.com/Everything-1.4.1.895.x64.zip',
'FastCopy': 'http://ftp.vector.co.jp/70/64/2323/FastCopy354_installer.zip',
@ -36,6 +37,7 @@ SOURCE_URLS = {
'TestDisk': 'https://www.cgsecurity.org/testdisk-7.1-WIP.win.zip',
'wimlib32': 'https://wimlib.net/downloads/wimlib-1.12.0-windows-i686-bin.zip',
'wimlib64': 'https://wimlib.net/downloads/wimlib-1.12.0-windows-x86_64-bin.zip',
'WinAIO Repair': 'http://www.tweaking.com/files/setups/tweaking.com_windows_repair_aio.zip',
'Winapp2': 'https://github.com/MoscaDotTo/Winapp2/archive/master.zip',
'WizTree': 'https://antibody-software.com/files/wiztree_3_26_portable.zip',
'XMPlay 7z': 'https://support.xmplay.com/files/16/xmp-7z.zip?v=800962',
@ -65,8 +67,8 @@ VCREDIST_SOURCES = {
}
NINITE_SOURCES = {
'Bundles': {
'Legacy.exe': '.net4.7.2-7zip-chrome-firefox-vlc',
'Modern.exe': '.net4.7.2-7zip-chrome-classicstart-firefox-vlc',
'Legacy.exe': '.net4.7.2-7zip-chrome-firefox-sumatrapdf-vlc',
'Modern.exe': '.net4.7.2-7zip-chrome-classicstart-firefox-sumatrapdf-vlc',
},
'Audio-Video': {
'AIMP.exe': 'aimp',
@ -196,3 +198,5 @@ RST_SOURCES = {
if __name__ == '__main__':
print("This file is not meant to be called directly.")
# vim: sts=4 sw=4 ts=4 tw=0 nowrap

View file

@ -15,6 +15,7 @@ from functions.setup import *
init_global_vars()
os.system('title {}: System Checklist Tool'.format(KIT_NAME_FULL))
global_vars['LogFile'] = r'{LogDir}\System Checklist.log'.format(**global_vars)
D7_MODE = 'd7mode' in sys.argv
if __name__ == '__main__':
try:
@ -43,23 +44,28 @@ if __name__ == '__main__':
# Cleanup
print_info('Cleanup')
try_and_print(message='Desktop...',
function=cleanup_desktop, cs='Done')
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='Emsisoft a2cmd...',
function=cleanup_emsisoft, cs='Done')
try_and_print(message='Registry Backup(s)...',
function=cleanup_regbackups, cs='Done')
# 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)
if not D7_MODE:
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')
@ -79,12 +85,18 @@ if __name__ == '__main__':
try_and_print(message='Installed RAM:',
function=show_installed_ram, ns='Unknown', silent_function=False)
show_free_space()
if D7_MODE:
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)
if D7_MODE:
try_and_print(message='Product Keys:',
function=get_product_keys, ns='Unknown', print_return=True)
# Play audio, show devices, open Windows updates, and open Activation
try_and_print(message='Opening Device Manager...',

View file

@ -15,6 +15,67 @@ 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
# 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',
'firefox.cache',
'firefox.session_restore',
'google_chrome.cache',
'google_chrome.session',
'google_earth.temporary_files',
'internet_explorer.temporary_files',
'opera.cache',
'opera.current_session',
'safari.cache',
'seamonkey.cache',
),
'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."""
result_ok = True
if not result['CS']:
for warning in other_results.get('Warning', {}).keys():
if warning in str(result['Error']):
# Ignore warnings and repair statements
return True
# Error is not a warning
result_ok = False
return result_ok
if __name__ == '__main__':
try:
@ -22,6 +83,7 @@ if __name__ == '__main__':
clear_screen()
print_info('{}: System Diagnostics Tool\n'.format(KIT_NAME_FULL))
ticket_number = get_ticket_number()
system_ok = True
other_results = {
'Error': {
'CalledProcessError': 'Unknown Error',
@ -34,89 +96,113 @@ if __name__ == '__main__':
if ENABLED_TICKET_NUMBERS:
print_info('Starting System Diagnostics for Ticket #{}\n'.format(
ticket_number))
# Sanitize Environment
print_info('Sanitizing Environment')
# try_and_print(message='Killing processes...',
# function=run_process_killer, cs='Done')
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)
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
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)
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')
try_and_print(
result = try_and_print(
message='CHKDSK ({SYSTEMDRIVE})...'.format(**global_vars['Env']),
function=run_chkdsk, other_results=other_results)
try_and_print(message='SFC scan...',
system_ok &= check_result(result, other_results)
result = try_and_print(message='SFC scan...',
function=run_sfc_scan, other_results=other_results)
try_and_print(message='DISM CheckHealth...',
function=run_dism, other_results=other_results, repair=False)
# Scan for supported browsers
print_info('Scanning for browsers')
scan_for_browsers()
system_ok &= check_result(result, other_results)
if D7_MODE:
result = try_and_print(message='DISM RestoreHealth...',
function=run_dism, other_results=other_results, repair=True)
system_ok &= 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)
try_and_print(message='BleachBit report...',
function=run_bleachbit, cs='Done', other_results=other_results)
backup_browsers()
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)
try_and_print(message='Registry...',
function=backup_registry, 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
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)
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
print_info('User Data')
try:
show_user_data_summary()
except Exception:
print_error(' Unknown error.')
if not D7_MODE:
print_info('User Data')
try:
show_user_data_summary()
except Exception:
print_error(' Unknown error.')
# Done
print_standard('\nDone.')
pause('Press Enter to exit...')
if not D7_MODE or not system_ok:
print_standard('\nDone.')
pause('Press Enter to exit...')
exit_script()
except SystemExit:
pass
except:
major_exception()
# vim: sts=4 sw=4 ts=4

View file

@ -79,6 +79,7 @@ if __name__ == '__main__':
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)
try_and_print(message='WinAIO Repair...', function=update_winaiorepair, other_results=other_results, width=40)
# Uninstallers
print_info(' Uninstallers')

View file

@ -13,6 +13,7 @@ init_global_vars()
os.system('title {}: User Checklist Tool'.format(KIT_NAME_FULL))
global_vars['LogFile'] = r'{LogDir}\User Checklist ({USERNAME}).log'.format(
**global_vars, **global_vars['Env'])
D7_MODE = 'd7mode' in sys.argv
if __name__ == '__main__':
try:
@ -24,36 +25,46 @@ if __name__ == '__main__':
'NotInstalledError': 'Not installed',
'NoProfilesError': 'No profiles found',
}}
answer_config_browsers = ask('Install adblock?')
#answer_config_browsers = ask('Install adblock?')
answer_config_browsers = True
if answer_config_browsers:
answer_reset_browsers = ask(
'Reset browsers to safe defaults first?')
if D7_MODE:
# This is handled by another script option in d7ii
answer_reset_browsers = False
else:
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?')
#answer_config_classicshell = ask('Configure ClassicShell?')
#answer_config_explorer_user = ask('Configure Explorer?')
answer_config_classicshell = True
answer_config_explorer_user = True
# 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()
if not D7_MODE:
print_info('Current homepages')
list_homepages()
# Backup
print_info('Backing up browsers')
backup_browsers()
if not D7_MODE:
# Done during system_diagnostics
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:
@ -75,10 +86,11 @@ if __name__ == '__main__':
# Run speedtest
popen_program(['start', '', 'https://fast.com'], shell=True)
# Done
print_standard('\nDone.')
pause('Press Enter to exit...')
if not D7_MODE:
print_standard('\nDone.')
pause('Press Enter to exit...')
exit_script()
except SystemExit:
pass

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

View file

@ -37,3 +37,18 @@ menuentry "Linux" {
#UFD# icon /EFI/boot/icons/wk_win.png
#UFD# loader /EFI/microsoft/bootx64.efi
#UFD#}
#UFD#menuentry "ESET SysRescue Live" {
#UFD# icon /EFI/boot/icons/1201_eset.png
#UFD# loader /EFI/ESET/grubx64.efi
#UFD#}
#UFD#menuentry "HDClone" {
#UFD# icon /EFI/boot/icons/1201_hdclone.png
#UFD# loader /EFI/HDClone/grub.efi
#UFD#}
#UFD#menuentry "Mac dGPU Disable Tool" {
#UFD# icon /EFI/boot/icons/1201_mac-dgpu.png
#UFD# loader /dgpu/boot/x86_64/vmlinuz
#UFD# initrd /dgpu/boot/intel_ucode.img
#UFD# initrd /dgpu/boot/x86_64/archiso.img
#UFD# options "archisobasedir=dgpu archisolabel=1201_UFD nomodeset"
#UFD#}

View file

@ -0,0 +1,9 @@
LABEL eset
TEXT HELP
ESET SysRescue Live
* Offline AV scanner
ENDTEXT
MENU LABEL ESET SysRescue Live
LINUX ../casper/vmlinuz
INITRD ../casper/initrd.lz
APPEND boot=casper live-media=/dev/disk/by-label/1201_UFD splash

View file

@ -0,0 +1,9 @@
LABEL hdclone
TEXT HELP
HDClone by Miray Software
* Backups, cloning, etc
ENDTEXT
MENU LABEL HDClone 6
LINUX boot/syslinux/memdisk
INITRD ../sources/hdclone.iso
APPEND iso

View file

@ -8,4 +8,4 @@ LABEL pxe
CONFIG boot/syslinux/wk_pxe.cfg
LABEL sys
CONFIG boot/syslinux/wk_sys.cfg
CONFIG boot/syslinux/wk_sys_extras.cfg

View file

@ -15,15 +15,15 @@ MENU TABMSG
# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
MENU COLOR screen 30;44 #a0000000 #a0000000 none
MENU COLOR border 30;44 #a0000000 #a0000000 none
MENU COLOR title 1;36;44 #9033ccff #a0000000 none
MENU COLOR screen 30;41 #a0000000 #a0000000 none
MENU COLOR border 30;41 #a0000000 #a0000000 none
MENU COLOR title 1;35;41 #90ff6666 #a0000000 none
MENU COLOR sel 7;37;40 #e0ffffff #a0000000 std
MENU COLOR disabled 37;44 #50ffffff #a0000000 none
MENU COLOR unsel 37;44 #50ffffff #a0000000 none
MENU COLOR disabled 37;41 #50ffffff #a0000000 none
MENU COLOR unsel 37;41 #50ffffff #a0000000 none
MENU COLOR help 37;40 #c0ffffff #a0000000 none
MENU COLOR tabmsg 30;44 #a0000000 #a0000000 none
menu color cmdmark 1;36;44 #9033ccff #a0000000 none
MENU COLOR tabmsg 30;41 #a0000000 #a0000000 none
menu color cmdmark 1;35;41 #90ff6666 #a0000000 none
menu color cmdline 37;40 #c0ffffff #a0000000 none
MENU COLOR timeout_msg 37;40 #80ffffff #a0000000 none
MENU COLOR timeout 1;37;40 #c0ffffff #a0000000 none

View file

@ -2,6 +2,8 @@ INCLUDE boot/syslinux/wk_head.cfg
INCLUDE boot/syslinux/wk_sys_linux.cfg
#UFD#INCLUDE boot/syslinux/wk_sys_winpe.cfg
INCLUDE boot/syslinux/wk_sys_extras_entry.cfg
#UFD#INCLUDE boot/syslinux/1201_hdclone.cfg
#UFD#INCLUDE boot/syslinux/1201_eset.cfg
INCLUDE boot/syslinux/wk_hdt.cfg
INCLUDE boot/syslinux/wk_tail.cfg

View file

@ -3,6 +3,8 @@ INCLUDE boot/syslinux/wk_head.cfg
INCLUDE boot/syslinux/wk_sys_linux.cfg
INCLUDE boot/syslinux/wk_sys_linux_extras.cfg
#UFD#INCLUDE boot/syslinux/wk_sys_winpe.cfg
#UFD#INCLUDE boot/syslinux/1201_hdclone.cfg
#UFD#INCLUDE boot/syslinux/1201_eset.cfg
INCLUDE boot/syslinux/wk_hdt.cfg
INCLUDE boot/syslinux/wk_tail.cfg

View file

@ -1,7 +0,0 @@
Copyright (c) 2018 Alan Mason
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View file

@ -57,7 +57,7 @@ A collection of scripts to help technicians service Windows systems.
* _(Recommended)_ Install and configure `sudo`
* See the [wiki page](https://wiki.archlinux.org/index.php/Sudo) for details.
* Login to the user added above
* Download the Github repo $ `git clone https://github.com/2Shirt/WizardKit.git`
* Download the Github repo $ `git clone https://1201north.ddns.net:3000/2Shirt/WizardKit.git`
* Run the build script
* $ `cd WizardKit`
* $ `./Build\ Linux -b`