WizardKit/.bin/Scripts/update_kit.py
Alan Mason b180b42ec9 2016-10: Retroactive Updates
# Migration to Python started #
  * PoSH has an extreme slowdown for some systems while it runs an optimization
  ** pass for .NET on the first PoSH script execution.
  ** This is reason enough to move to an alternative.

* New additions:
  * User Data Transfer script
    * Will extract from a WIM or copy from a folder
    * Uses wimlib-imagex for images and FastCopy for folders
    * Removes undesired items after transfer/extraction
  * HWiNFO
  * Missing ODD repair registry patch
  * Q-Dir
  * SW Bundle install script

* ConEmu
  * Moving back to ConEmu for better performance.

* Copy-WizardKit
  * Now uses FastCopy

* functions.py
  * Ported init.ps1 to Python using functions.py (from WinPE) as a base

* Launch.cmd
  * Elevating programs/scripts now done using a temp VBScript file
  * Can run Python scripts (using either the 32 or 64 bit runtime)

* transferred_keys.cmd
  * Expanded searched paths

* Misc
  * Lots of variables and files renamed
  * Lots of hard-coded paths are now in variables
    * Should only be set in scripts in %bin%\Scripts
  * Moved a subset of the Diagnostics launchers to a new 'Extras' folder
    * The launchers moved are those that are less-often used
  * Refactored FindBin code to be more concise
  * Renamed "KitDir" "ClientDir" to indicate that it is on the client's system
  * Removed GeForce Experience launcher as it now requires an account
  * Added link to NVIDIA's driver webpage to download the correct driver
  * Removed AMD's Gaming Evolved launcher
    * This is usually bundled with the GPU driver anyway
  * Switched back to ConEmu
  * Variable and script names are now more descriptive
    * i.e. checklist -> final_checklist, and HH -> %kit_dir%
    * (not happy with %kit_dir%, will probably change again)
2017-11-17 00:53:08 -07:00

453 lines
22 KiB
Python

# Wizard Kit: Download the latest versions of the programs in the kit
import os
import re
# Init
os.chdir(os.path.dirname(os.path.realpath(__file__)))
os.system('title Wizard Kit: Kit Update Tool')
from functions import *
vars = init_vars()
vars_os = init_vars_os()
curl = '{BinDir}/curl/curl.exe'.format(**vars)
seven_zip = '{BinDir}/7-Zip/7za.exe'.format(**vars)
if vars_os['Arch'] == 64:
seven_zip = seven_zip.replace('7za', '7za64')
def download_file(out_dir, out_name, source_url):
"""Downloads a file using curl."""
print('Downloading: {out_name}'.format(out_name=out_name))
_args = [
'-#LSfo',
'{out_dir}/{out_name}'.format(out_dir=out_dir, out_name=out_name),
source_url
]
try:
os.makedirs(out_dir, exist_ok=True)
run_program(curl, _args, pipe=False)
except:
print_error('Falied to download file.')
def resolve_dynamic_url(source_url, regex):
"""Download the "download page" and scan for a url using the regex provided; returns str."""
# Download the file
_tmp_file = '{TmpDir}/webpage.tmp'.format(**vars)
_args = ['-#LSfo', _tmp_file, source_url]
try:
<<<<<<< HEAD
run_program(cmd)
except subprocess.CalledProcessError:
errors = True
print_error('Failed to apply Windows image.')
# Create boot files
if not errors:
print(' Creating boot files...'.format(**selected_windows_version))
try:
run_program('bcdboot W:\\Windows /s S: /f ALL')
except subprocess.CalledProcessError:
errors = True
print_error('Failed to create boot files.')
if re.search(r'^(8|10)', selected_windows_version['Family']):
try:
run_program('W:\\Windows\\System32\\reagentc /setreimage /path T:\\Recovery\\WindowsRE /target W:\\Windows')
except subprocess.CalledProcessError:
# errors = True # Changed to warning.
print_warning('Failed to setup WindowsRE files.')
# Print summary
if errors:
print_warning('\nErrors were encountered during setup.')
time.sleep(300)
else:
print_success('\nNo errors were encountered during setup.')
time.sleep(10)
pause('\nPress Enter to return to main menu... ')
def menu_tools():
tools = [
{'Name': 'Blue Screen View', 'Folder': 'BlueScreenView', 'File': 'BlueScreenView.exe'},
{'Name': 'CPU-Z', 'Folder': 'CPU-Z', 'File': 'cpuz.exe'},
{'Name': 'Explorer++', 'Folder': 'Explorer++', 'File': 'Explorer++.exe'},
{'Name': 'Fast Copy', 'Folder': 'FastCopy', 'File': 'FastCopy.exe', 'Args': ['/log', '/logfile=X:\WK\Info\FastCopy.log', '/cmd=noexist_only', '/utf8', '/skip_empty_dir', '/linkdest', '/open_window', '/balloon=FALSE', r'/exclude=$RECYCLE.BIN;$Recycle.Bin;.AppleDB;.AppleDesktop;.AppleDouble;.com.apple.timemachine.supported;.dbfseventsd;.DocumentRevisions-V100*;.DS_Store;.fseventsd;.PKInstallSandboxManager;.Spotlight*;.SymAV*;.symSchedScanLockxz;.TemporaryItems;.Trash*;.vol;.VolumeIcon.icns;desktop.ini;Desktop?DB;Desktop?DF;hiberfil.sys;lost+found;Network?Trash?Folder;pagefile.sys;Recycled;RECYCLER;System?Volume?Information;Temporary?Items;Thumbs.db']},
{'Name': 'HWiNFO', 'Folder': 'HWiNFO', 'File': 'HWiNFO.exe'},
{'Name': 'HW Monitor', 'Folder': 'HWMonitor', 'File': 'HWMonitor.exe'},
{'Name': 'NT Password Editor', 'Folder': 'NT Password Editor', 'File': 'ntpwedit.exe'},
{'Name': 'Notepad2', 'Folder': 'Notepad2', 'File': 'Notepad2-Mod.exe'},
{'Name': 'PhotoRec', 'Folder': 'TestDisk', 'File': 'photorec_win.exe', 'Args': ['-new_console:n']},
{'Name': 'Prime95', 'Folder': 'Prime95', 'File': 'prime95.exe'},
{'Name': 'ProduKey', 'Folder': 'ProduKey', 'File': 'ProduKey.exe', 'Args': ['/external', '/ExtractEdition:1']},
{'Name': 'Q-Dir', 'Folder': 'Q-Dir', 'File': 'Q-Dir.exe'},
{'Name': 'TestDisk', 'Folder': 'TestDisk', 'File': 'testdisk_win.exe', 'Args': ['-new_console:n']},
]
actions = [
{'Name': 'Main Menu', 'Letter': 'M'},
]
# Menu loop
while True:
selection = menu_select('Tools Menu', tools, actions)
if (selection.isnumeric()):
tool = tools[int(selection)-1]
cmd = ['{bin}\\{folder}\\{file}'.format(bin=bin, folder=tool['Folder'], file=tool['File'])]
if tool['Name'] == 'Blue Screen View':
# Select path to scan
minidump_path = select_minidump_path()
if minidump_path is not None:
tool['Args'] = ['/MiniDumpFolder', minidump_path]
if 'Args' in tool:
cmd += tool['Args']
try:
subprocess.Popen(cmd)
except:
print_error('Failed to run {prog}'.format(prog=tool['Name']))
time.sleep(2)
elif (selection == 'M'):
break
def menu_main():
menus = [
{'Name': 'Create Backups', 'Menu': menu_backup_imaging},
{'Name': 'Install Windows', 'Menu': menu_windows_setup},
{'Name': 'Misc Tools', 'Menu': menu_tools},
]
actions = [
{'Name': 'Command Prompt', 'Letter': 'C'},
{'Name': 'Reboot', 'Letter': 'R'},
{'Name': 'Shutdown', 'Letter': 'S'},
]
# Main loop
while True:
selection = menu_select('Main Menu', menus, actions, secret_exit=True)
if (selection.isnumeric()):
try:
menus[int(selection)-1]['Menu']()
except AbortException:
pass
except:
print_error('Major exception in: {menu}'.format(menu=menus[int(selection)-1]['Name']))
print_warning(' Please let The Wizard know and he\'ll look into it (Please include the details below).')
print(traceback.print_exc())
print_info(' You can reboot and try again but if this crashes again an alternative approach is required.')
time.sleep(300)
pause('Press Enter to shutdown...')
run_program(['wpeutil', 'shutdown'])
elif (selection == 'C'):
run_program(['cmd', '-new_console:n'], check=False)
elif (selection == 'R'):
run_program(['wpeutil', 'reboot'])
elif (selection == 'S'):
run_program(['wpeutil', 'shutdown'])
else:
quit()
=======
os.makedirs(vars['TmpDir'], exist_ok=True)
run_program(curl, _args)
except:
print_error('Falied to resolve dynamic url')
# Scan the file for the regex
with open(_tmp_file, 'r') as file:
for line in file:
if re.search(regex, line):
_url = line.strip()
_url = re.sub(r'.*(a |)href="([^"]+)".*', r'\2', _url)
_url = re.sub(r".*(a |)href='([^']+)'.*", r'\2', _url)
break
# Cleanup and return
os.remove(_tmp_file)
return _url
>>>>>>> d9a6f8abf55c460cf0adeea19aded1786b3bc5d0
if __name__ == '__main__':
## Diagnostics ##
# HitmanPro
_path = '{BinDir}/HitmanPro'.format(**vars)
_name = 'HitmanPro.exe'
_url = 'http://dl.surfright.nl/HitmanPro.exe'
download_file(_path, _name, _url)
_name = 'HitmanPro64.exe'
_url = 'http://dl.surfright.nl/HitmanPro_x64.exe'
download_file(_path, _name, _url)
## VR-OSR ##
# AdwCleaner
_path = vars['BinDir']
_name = 'AdwCleaner.exe'
_dl_page = 'http://www.bleepingcomputer.com/download/adwcleaner/dl/125/'
_regex = r'href=.*http(s|)://download\.bleepingcomputer\.com/dl/[a-zA-Z0-9]+/[a-zA-Z0-9]+/windows/security/security-utilities/a/adwcleaner/AdwCleaner\.exe'
_url = resolve_dynamic_url(_dl_page, _regex)
download_file(_path, _name, _url)
# ESET Online Scanner
_path = vars['BinDir']
_name = 'ESET.exe'
_url = 'http://download.eset.com/special/eos/esetsmartinstaller_enu.exe'
download_file(_path, _name, _url)
# Junkware Removal Tool
_path = vars['BinDir']
_name = 'JRT.exe'
_url = 'http://downloads.malwarebytes.org/file/jrt'
download_file(_path, _name, _url)
# Kaspersky Virus Removal Tool
_path = vars['BinDir']
_name = 'KVRT.exe'
_url = 'http://devbuilds.kaspersky-labs.com/devbuilds/KVRT/latest/full/KVRT.exe'
download_file(_path, _name, _url)
# RKill
_path = '{BinDir}/RKill'.format(**vars)
_name = 'RKill.exe'
_dl_page = 'http://www.bleepingcomputer.com/download/rkill/dl/10/'
_regex = r'href=.*http(s|)://download\.bleepingcomputer\.com/dl/[a-zA-Z0-9]+/[a-zA-Z0-9]+/windows/security/security-utilities/r/rkill/rkill\.exe'
_url = resolve_dynamic_url(_dl_page, _regex)
download_file(_path, _name, _url)
# TDSSKiller
_path = vars['BinDir']
_name = 'TDSSKiller.exe'
_url = 'http://media.kaspersky.com/utilities/VirusUtilities/EN/tdsskiller.exe'
download_file(_path, _name, _url)
## Driver Tools ##
# Acer Serial Number Detect Tool
_path = '{BinDir}/_Drivers'.format(**vars)
_name = 'Acer Serial Number Detect Tool.exe'
_url = 'http://global-download.acer.com/SupportFiles/Files/SNID/APP/SerialNumberDetectionTool.exe'
download_file(_path, _name, _url)
# AMD Autodetect
_path = '{BinDir}/_Drivers'.format(**vars)
_name = 'AMD Autodetect.exe'
_url = 'http://www2.ati.com/drivers/auto/autodetectutility.exe'
download_file(_path, _name, _url)
# AMD Gaming Evolved
_path = '{BinDir}/_Drivers'.format(**vars)
_name = 'AMD Gaming Evolved.exe'
_url = 'http://clientupdater.raptr.com/client/pc/amd/raptr_installer.exe'
download_file(_path, _name, _url)
# Dell System Detect
_path = '{BinDir}/_Drivers'.format(**vars)
_name = 'Dell System Detect.exe'
_url = 'https://downloads.dell.com/tools/dellsystemdetect/dellsystemdetectlauncher.exe'
download_file(_path, _name, _url)
#~Broken~# # GeForce Experience
#~Broken~# _path = '{BinDir}/_Drivers'.format(**vars)
#~Broken~# _name = 'GeForce Experience.exe'
#~Broken~# _dl_page = 'http://www.geforce.com/geforce-experience/download'
#~Broken~# _regex = r'href=.*http(s|)://us\.download\.nvidia\.com/GFE/GFEClient/[0-9\.]+/GeForce_Experience_v[0-9\.]+\.exe'
#~Broken~# _url = resolve_dynamic_url(_dl_page, _regex)
#~Broken~# download_file(_path, _name, _url)
# HP Support Solutions Framework
_path = '{BinDir}/_Drivers'.format(**vars)
_name = 'HP Support Solutions Framework.exe'
_url = 'http://h20614.www2.hp.com/ediags/filehosting/api/installer'
download_file(_path, _name, _url)
# Intel Driver Update Utility
_path = '{BinDir}/_Drivers'.format(**vars)
_name = 'Intel Driver Update Utility.exe'
_dl_page = 'http://www.intel.com/content/www/us/en/support/detect.html'
_regex = r'a href.*http(s|)://downloadmirror\.intel\.com/[a-zA-Z0-9]+/[a-zA-Z0-9]+/Intel%20Driver%20Update%20Utility%20Installer.exe'
_url = resolve_dynamic_url(_dl_page, _regex)
_url = resolve_dynamic_url(_dl_page, _regex)
download_file(_path, _name, _url)
# Intel SSD Toolbox
_path = '{BinDir}/_Drivers'.format(**vars)
_name = 'Intel SSD Toolbox.exe'
_dl_page = 'https://downloadcenter.intel.com/download/26085/Intel-Solid-State-Drive-Toolbox'
_regex = r'href=./downloads/eula/[0-9]+/Intel-Solid-State-Drive-Toolbox.httpDown=https\%3A\%2F\%2Fdownloadmirror\.intel\.com\%2F[0-9]+\%2Feng\%2FIntel\%20SSD\%20Toolbox\%20-\%20v[0-9\.]+.exe'
_url = resolve_dynamic_url(_dl_page, _regex)
_url = re.sub(r'.*httpDown=(.*)', r'\1', _url, flags=re.IGNORECASE)
_url = _url.replace('%3A', ':')
_url = _url.replace('%2F', '/')
download_file(_path, _name, _url)
# Lenovo Service Bridge
_path = '{BinDir}/_Drivers'.format(**vars)
_name = 'Lenovo Service Bridge.exe'
_url = 'https://download.lenovo.com/lsb/LSBsetup.exe'
download_file(_path, _name, _url)
#~Broken~# # Samsung Magician
print_warning('Samsung Magician section is broken.')
print('Please manually put "Samsung Magician.exe" into "{BinDir}\\_Drivers\\"')
#~Broken~# _path = '{BinDir}/_Drivers'.format(**vars)
#~Broken~# _name = 'Samsung Magician.zip'
#~Broken~# _dl_page = 'http://www.samsung.com/semiconductor/minisite/ssd/download/tools.html'
#~Broken~# _regex = r'href=./semiconductor/minisite/ssd/downloads/software/Samsung_Magician_Setup_v[0-9]+.zip'
#~Broken~# _url = resolve_dynamic_url(_dl_page, _regex)
#~Broken~# # Convert relative url to absolute
#~Broken~# _url = 'http://www.samsung.com' + _url
#~Broken~# download_file(_path, _name, _url)
#~Broken~# # Extract and replace old copy
#~Broken~# _args = [
#~Broken~# 'e', '"{BinDir}/_Drivers/Samsung Magician.zip"'.format(**vars),
#~Broken~# '-aoa', '-bso0', '-bsp0',
#~Broken~# '-o"{BinDir}/_Drivers"'.format(**vars)
#~Broken~# ]
#~Broken~# run_program(seven_zip, _args)
#~Broken~# try:
#~Broken~# os.remove('{BinDir}/_Drivers/Samsung Magician.zip'.format(**vars))
#~Broken~# #~PoSH~# Move-Item "$bin\_Drivers\Samsung*exe" "$bin\_Drivers\Samsung Magician.exe" $path 2>&1 | Out-Null
#~Broken~# except:
#~Broken~# pass
# SanDisk Express Cache
_path = '{BinDir}/_Drivers'.format(**vars)
_name = 'SanDisk Express Cache.exe'
_url = 'http://mp3support.sandisk.com/ReadyCache/ExpressCacheSetup.exe'
download_file(_path, _name, _url)
# Toshiba System Detect
_path = '{BinDir}/_Drivers'.format(**vars)
_name = 'Toshiba System Detect.exe'
_url = 'http://cdgenp01.csd.toshiba.com/content/support/downloads/GetProductInfo.exe'
download_file(_path, _name, _url)
## Installers ##
# Ninite - Bundles
_path = '{BaseDir}/Installers/Extras/Bundles'.format(**vars)
download_file(_path, 'Runtimes.exe', 'https://ninite.com/.net4.6.2-air-java8-silverlight/ninite.exe')
download_file(_path, 'Legacy.exe', 'https://ninite.com/.net4.6.2-7zip-air-chrome-firefox-java8-silverlight-vlc/ninite.exe')
download_file(_path, 'Modern.exe', 'https://ninite.com/.net4.6.2-7zip-air-chrome-classicstart-firefox-java8-silverlight-vlc/ninite.exe')
# Ninite - Audio-Video
_path = '{BaseDir}/Installers/Extras/Audio-Video'.format(**vars)
download_file(_path, 'AIMP.exe', 'https://ninite.com/aimp/ninite.exe')
download_file(_path, 'Audacity.exe', 'https://ninite.com/audacity/ninite.exe')
download_file(_path, 'CCCP.exe', 'https://ninite.com/cccp/ninite.exe')
download_file(_path, 'Foobar2000.exe', 'https://ninite.com/foobar/ninite.exe')
download_file(_path, 'GOM.exe', 'https://ninite.com/gom/ninite.exe')
download_file(_path, 'iTunes.exe', 'https://ninite.com/itunes/ninite.exe')
download_file(_path, 'K-Lite Codecs.exe', 'https://ninite.com/klitecodecs/ninite.exe')
download_file(_path, 'KMPlayer.exe', 'https://ninite.com/kmplayer/ninite.exe')
download_file(_path, 'MediaMonkey.exe', 'https://ninite.com/mediamonkey/ninite.exe')
download_file(_path, 'MusicBee.exe', 'https://ninite.com/musicbee/ninite.exe')
download_file(_path, 'Spotify.exe', 'https://ninite.com/spotify/ninite.exe')
download_file(_path, 'VLC.exe', 'https://ninite.com/vlc/ninite.exe')
download_file(_path, 'Winamp.exe', 'https://ninite.com/winamp/ninite.exe')
# Ninite - Cloud Storage
_path = '{BaseDir}/Installers/Extras/Cloud Storage'.format(**vars)
download_file(_path, 'BitTorrent Sync.exe', 'https://ninite.com/bittorrentsync/ninite.exe')
download_file(_path, 'Dropbox.exe', 'https://ninite.com/dropbox/ninite.exe')
download_file(_path, 'Google Drive.exe', 'https://ninite.com/googledrive/ninite.exe')
download_file(_path, 'Mozy.exe', 'https://ninite.com/mozy/ninite.exe')
download_file(_path, 'OneDrive.exe', 'https://ninite.com/onedrive/ninite.exe')
download_file(_path, 'SugarSync.exe', 'https://ninite.com/sugarsync/ninite.exe')
# Ninite - Communication
_path = '{BaseDir}/Installers/Extras/Communication'.format(**vars)
download_file(_path, 'AIM.exe', 'https://ninite.com/aim/ninite.exe')
download_file(_path, 'Pidgin.exe', 'https://ninite.com/pidgin/ninite.exe')
download_file(_path, 'Skype.exe', 'https://ninite.com/skype/ninite.exe')
download_file(_path, 'Trillian.exe', 'https://ninite.com/trillian/ninite.exe')
# Ninite - Compression
_path = '{BaseDir}/Installers/Extras/Compression'.format(**vars)
download_file(_path, '7-Zip.exe', 'https://ninite.com/7zip/ninite.exe')
download_file(_path, 'PeaZip.exe', 'https://ninite.com/peazip/ninite.exe')
download_file(_path, 'WinRAR.exe', 'https://ninite.com/winrar/ninite.exe')
# Ninite - Developer
_path = '{BaseDir}/Installers/Extras/Developer'.format(**vars)
download_file(_path, 'Eclipse.exe', 'https://ninite.com/eclipse/ninite.exe')
download_file(_path, 'FileZilla.exe', 'https://ninite.com/filezilla/ninite.exe')
download_file(_path, 'JDK 8.exe', 'https://ninite.com/jdk8/ninite.exe')
download_file(_path, 'JDK 8 (x64).exe', 'https://ninite.com/jdkx8/ninite.exe')
download_file(_path, 'Notepad++.exe', 'https://ninite.com/notepadplusplus/ninite.exe')
download_file(_path, 'PuTTY.exe', 'https://ninite.com/putty/ninite.exe')
download_file(_path, 'Python 2.exe', 'https://ninite.com/python/ninite.exe')
download_file(_path, 'Visual Studio Code.exe', 'https://ninite.com/vscode/ninite.exe')
download_file(_path, 'WinMerge.exe', 'https://ninite.com/winmerge/ninite.exe')
download_file(_path, 'WinSCP.exe', 'https://ninite.com/winscp/ninite.exe')
# Ninite - File Sharing
_path = '{BaseDir}/Installers/Extras/File Sharing'.format(**vars)
download_file(_path, 'eMule.exe', 'https://ninite.com/emule/ninite.exe')
download_file(_path, 'qBittorrent.exe', 'https://ninite.com/qbittorrent/ninite.exe')
# Ninite - Image-Photo
_path = '{BaseDir}/Installers/Extras/Image-Photo'.format(**vars)
download_file(_path, 'FastStone.exe', 'https://ninite.com/faststone/ninite.exe')
download_file(_path, 'GIMP.exe', 'https://ninite.com/gimp/ninite.exe')
download_file(_path, 'Greenshot.exe', 'https://ninite.com/greenshot/ninite.exe')
download_file(_path, 'Inkscape.exe', 'https://ninite.com/inkscape/ninite.exe')
download_file(_path, 'IrfanView.exe', 'https://ninite.com/irfanview/ninite.exe')
download_file(_path, 'Paint.NET.exe', 'https://ninite.com/paint.net/ninite.exe')
download_file(_path, 'ShareX.exe', 'https://ninite.com/sharex/ninite.exe')
download_file(_path, 'XnView.exe', 'https://ninite.com/xnview/ninite.exe')
# Ninite - Misc
_path = '{BaseDir}/Installers/Extras/Misc'.format(**vars)
download_file(_path, 'Classic Start.exe', 'https://ninite.com/classicstart/ninite.exe')
download_file(_path, 'Evernote.exe', 'https://ninite.com/evernote/ninite.exe')
download_file(_path, 'Everything.exe', 'https://ninite.com/everything/ninite.exe')
download_file(_path, 'Google Earth.exe', 'https://ninite.com/googleearth/ninite.exe')
download_file(_path, 'NV Access.exe', 'https://ninite.com/nvda/ninite.exe')
download_file(_path, 'Steam.exe', 'https://ninite.com/steam/ninite.exe')
# Ninite - Office
_path = '{BaseDir}/Installers/Extras/Office'.format(**vars)
download_file(_path, 'CutePDF.exe', 'https://ninite.com/cutepdf/ninite.exe')
download_file(_path, 'Foxit Reader.exe', 'https://ninite.com/foxit/ninite.exe')
download_file(_path, 'LibreOffice.exe', 'https://ninite.com/libreoffice/ninite.exe')
download_file(_path, 'OpenOffice.exe', 'https://ninite.com/openoffice/ninite.exe')
download_file(_path, 'PDFCreator.exe', 'https://ninite.com/pdfcreator/ninite.exe')
download_file(_path, 'SumatraPDF.exe', 'https://ninite.com/sumatrapdf/ninite.exe')
download_file(_path, 'Thunderbird.exe', 'https://ninite.com/thunderbird/ninite.exe')
# Ninite - Runtimes
_path = '{BaseDir}/Installers/Extras/Runtimes'.format(**vars)
download_file(_path, 'Adobe Air.exe', 'https://ninite.com/air/ninite.exe')
download_file(_path, 'dotNET.exe', 'https://ninite.com/.net4.6.2/ninite.exe')
download_file(_path, 'Java 8.exe', 'https://ninite.com/java8/ninite.exe')
download_file(_path, 'Shockwave.exe', 'https://ninite.com/shockwave/ninite.exe')
download_file(_path, 'Silverlight.exe', 'https://ninite.com/silverlight/ninite.exe')
# Ninite - Security
_path = '{BaseDir}/Installers/Extras/Security'.format(**vars)
download_file(_path, 'Ad-Aware.exe', 'https://ninite.com/adaware/ninite.exe')
download_file(_path, 'Avast.exe', 'https://ninite.com/avast/ninite.exe')
download_file(_path, 'AVG.exe', 'https://ninite.com/avg/ninite.exe')
download_file(_path, 'Avira.exe', 'https://ninite.com/avira/ninite.exe')
download_file(_path, 'Microsoft Security Essentials.exe', 'https://ninite.com/essentials/ninite.exe')
download_file(_path, 'Malwarebytes Anti-Malware.exe', 'https://ninite.com/malwarebytes/ninite.exe')
download_file(_path, 'Spybot 2.exe', 'https://ninite.com/spybot2/ninite.exe')
download_file(_path, 'SUPERAntiSpyware.exe', 'https://ninite.com/super/ninite.exe')
# Ninite - Utilities
_path = '{BaseDir}/Installers/Extras/Utilities'.format(**vars)
download_file(_path, 'Auslogics DiskDefrag.exe', 'https://ninite.com/auslogics/ninite.exe')
download_file(_path, 'CDBurnerXP.exe', 'https://ninite.com/cdburnerxp/ninite.exe')
download_file(_path, 'Glary Utilities.exe', 'https://ninite.com/glary/ninite.exe')
download_file(_path, 'ImgBurn.exe', 'https://ninite.com/imgburn/ninite.exe')
download_file(_path, 'InfraRecorder.exe', 'https://ninite.com/infrarecorder/ninite.exe')
download_file(_path, 'KeePass 2.exe', 'https://ninite.com/keepass2/ninite.exe')
download_file(_path, 'Launchy.exe', 'https://ninite.com/launchy/ninite.exe')
download_file(_path, 'RealVNC.exe', 'https://ninite.com/realvnc/ninite.exe')
download_file(_path, 'Revo Uninstaller.exe', 'https://ninite.com/revo/ninite.exe')
download_file(_path, 'TeamViewer 11.exe', 'https://ninite.com/teamviewer11/ninite.exe')
download_file(_path, 'TeraCopy.exe', 'https://ninite.com/teracopy/ninite.exe')
download_file(_path, 'WinDirStat.exe', 'https://ninite.com/windirstat/ninite.exe')
# Ninite - Web Browsers
_path = '{BaseDir}/Installers/Extras/Web Browsers'.format(**vars)
download_file(_path, 'Google Chrome.exe', 'https://ninite.com/chrome/ninite.exe')
download_file(_path, 'Mozilla Firefox.exe', 'https://ninite.com/firefox/ninite.exe')
download_file(_path, 'Opera Chromium.exe', 'https://ninite.com/operaChromium/ninite.exe')
pause("Press Enter to exit...")
quit()