2017-01: Retroactive Updates

* Added get_volumes()
  * This makes Assign/Remove letters sections more readable
* Adjusted WinPE launch settings
  * Should now chdir to X:\WK
  * Added menu.cmd for easier (re)launching of menu
    * i.e. just type `menu`
* Enabled  user to return to the main menu after a major crash
* make.cmd: Changed iso names to match the Linux build names
* Refactored backup imaging code
  * More readable
  * More consistent variable naming
  * Moved classes and abort function to functions.py
* Refactored disk/partition info sections
* Refactored Windows Setup sections
  * Much more readable menu section
  * Majority of code moved to functions.py
  * More consistent variable naming
  * Boot mode detection now a callable function
  * Expanded WinRE section to match current recommended setup
    * WinRE is now setup for Legacy setups running Win8+
    * Problems during setup will again be reported as errors instead of warnings
  * Verify source windows images and abort if invalid
    * Allows for earlier aborts which will reduce wasted time
* Reordered functions to be in alphabetical order
* Updated tools
  * Enabled file/folder size display in Q-Dir
  * Switched back to the standard ConEmu (instead of the Cmder build)
  * Updated scripts for Python 3.6
    * This version has a different sys.path so the import code was adjusted
  * REMOVED Explorer++
  * REMOVED HWMonitor

* Bugfix: fixed discrepancies between x32 & x64
* Bugfix: relaunching the menu now stays in the current window
This commit is contained in:
Alan Mason 2017-11-24 21:08:39 -08:00
parent 93250b22ed
commit e05d2ce862
17 changed files with 1564 additions and 1852 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
Scripts/__pycache__

View file

@ -1,4 +1,4 @@
Copyright (c) 2016 Alan Mason
Copyright (c) 2017 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:

File diff suppressed because it is too large Load diff

View file

@ -1,297 +1,141 @@
# WK WinPE Menu
# Init
import os
import re
import subprocess
import sys
import time
import traceback
import winreg
from functions import *
# Init
os.chdir(os.path.dirname(os.path.realpath(__file__)))
bin = os.path.abspath('..\\')
## Check bootup type
BOOT_TYPE = 'Legacy'
try:
reg_key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, 'System\\CurrentControlSet\\Control')
reg_value = winreg.QueryValueEx(reg_key, 'PEFirmwareType')[0]
if reg_value == 2:
BOOT_TYPE = 'UEFI'
except:
BOOT_TYPE = 'Unknown'
class AbortException(Exception):
pass
def abort_to_main_menu(message='Returning to main menu...'):
print_warning(message)
pause('Press Enter to return to main menu... ')
raise AbortException
sys.path.append(os.getcwd())
from functions import *
def menu_backup_imaging():
"""Take backup images of partition(s) in the WIM format and save them to a backup share"""
errors = False
# Mount backup shares
os.system('cls')
mount_backup_shares()
# Set ticket number
ticket = None
while ticket is None:
tmp = input('Enter ticket number: ')
if re.match(r'^([0-9]+([-_]?\w+|))$', tmp):
ticket = tmp
# Select disk to backup
disk = select_disk('For which drive are we creating backups?')
if disk is None:
abort_to_main_menu()
# Get list of partitions that can't be imaged
bad_parts = [p['Number'] for p in disk['Partitions'] if 'Letter' not in p or re.search(r'(RAW|Unknown)', p['FileSystem'])]
# Bail if no partitions are found (that can be imaged)
num_parts = len(disk['Partitions'])
if num_parts == 0 or num_parts == len(bad_parts):
abort_to_main_menu(' No partitions can be imaged for the selected drive')
# Set ticket ID
ticket_id = get_ticket_id()
# Select destination
dest = select_destination()
if dest is None:
abort_to_main_menu('Aborting Backup Creation')
# List (and update) partition details for selected drive
# Select disk to backup
disk = select_disk('For which drive are we creating backups?')
if disk is None:
abort_to_main_menu()
prep_disk_for_backup(dest, disk, ticket_id)
# Display details for backup task
os.system('cls')
print('Create Backup - Details:\n')
print(' Drive: {Size}\t[{Table}] ({Type}) {Name}\n'.format(**disk))
clobber_risk = 0
width=len(str(len(disk['Partitions'])))
for par in disk['Partitions']:
# Detail each partition
if par['Number'] in bad_parts:
print_warning(' * Partition {Number:>{width}}:\t{Size} {FileSystem}\t\t{q}{Name}{q}\t{Description} ({OS})'.format(
width=width,
q='"' if par['Name'] != '' else '',
**par))
else:
# Update info for WIM capture
par['ImageName'] = str(par['Name'])
if par['ImageName'] == '':
par['ImageName'] = 'Unknown'
if 'IP' in dest:
par['ImagePath'] = '\\\\{IP}\\{Share}\\{ticket}'.format(ticket=ticket, **dest)
else:
par['ImagePath'] = '{Letter}:\\{ticket}'.format(ticket=ticket, **dest)
par['ImageFile'] = '{Number}_{ImageName}'.format(**par)
par['ImageFile'] = '{fixed_name}.wim'.format(fixed_name=re.sub(r'\W', '_', par['ImageFile']))
# Check for existing backups
par['ImageExists'] = False
if os.path.exists('{ImagePath}\\{ImageFile}'.format(**par)):
par['ImageExists'] = True
clobber_risk += 1
print_info(' + Partition {Number:>{width}}:\t{Size} {FileSystem} (Used: {Used Space})\t{q}{Name}{q}'.format(
width=width,
q='"' if par['Name'] != '' else '',
**par))
else:
print(' Partition {Number:>{width}}:\t{Size} {FileSystem} (Used: {Used Space})\t{q}{Name}{q}'.format(
width=width,
q='"' if par['Name'] != '' else '',
**par))
print('') # Spacer
# Add warning about partition(s) that will be skipped
if len(bad_parts) > 1:
print_warning(' * Unable to backup these partitions')
elif len(bad_parts) == 1:
print_warning(' * Unable to backup this partition')
if clobber_risk > 1:
print_info(' + These partitions already have backup images on {Display Name}:'.format(**dest))
elif clobber_risk == 1:
print_info(' + This partition already has a backup image on {Display Name}:'.format(**dest))
if clobber_risk + len(bad_parts) > 1:
print_warning('\nIf you continue the partitions marked above will NOT be backed up.\n')
if clobber_risk + len(bad_parts) == 1:
print_warning('\nIf you continue the partition marked above will NOT be backed up.\n')
# (re)display the destination
print(' Destination:\t{name}\n'.format(name=dest.get('Display Name', dest['Name'])))
print(par['Display String'])
print(disk['Backup Warnings'])
print('\n Destination:\t{name}\n'.format(name=dest.get('Display Name', dest['Name'])))
# Ask to proceed
if (not ask('Proceed with backup?')):
abort_to_main_menu('Aborting Backup Creation')
# Backup partition(s)
print('\n\nStarting task.\n')
errors = False
for par in disk['Partitions']:
print(' Partition {Number} Backup...\t\t'.format(**par), end='', flush=True)
if par['Number'] in bad_parts:
print_warning('Skipped.')
else:
cmd = '{bin}\\wimlib\\wimlib-imagex capture {Letter}:\\ "{ImagePath}\\{ImageFile}" "{ImageName}" "{ImageName}" --compress=fast'.format(bin=bin, **par)
if par['ImageExists']:
print_warning('Skipped.')
else:
try:
os.makedirs('{ImagePath}'.format(**par), exist_ok=True)
run_program(cmd)
print_success('Complete.')
except subprocess.CalledProcessError as err:
print_error('Failed.')
errors = True
par['Error'] = err.stderr.decode().splitlines()
try:
backup_partition(bin, par)
except BackupException:
errors = True
# Verify backup(s)
if len(par) - len(bad_parts) > 1:
if len(disk['Valid Partitions']) > 1:
print('\n\n Verifying backups\n')
else:
print('\n\n Verifying backup\n')
for par in disk['Partitions']:
if par['Number'] not in bad_parts:
print(' Partition {Number} Image...\t\t'.format(**par), end='', flush=True)
cmd = '{bin}\\wimlib\\wimlib-imagex verify "{ImagePath}\\{ImageFile}" --nocheck'.format(bin=bin, **par)
if not os.path.exists('{ImagePath}\\{ImageFile}'.format(**par)):
print_error('Missing.')
else:
try:
run_program(cmd)
print_success('OK.')
except subprocess.CalledProcessError as err:
print_error('Damaged.')
errors = True
par['Error'] = par.get('Error', []) + err.stderr.decode().splitlines()
if par['Number'] in disk['Bad Partitions']:
continue # Skip verification
try:
verify_wim_backup(bin, par)
except BackupException:
errors = True
# Print summary
if errors:
print_warning('\nErrors were encountered and are detailed below.')
for par in [p for p in disk['Partitions'] if 'Error' in p]:
print(' Partition {Number} Error:'.format(**par))
for line in par['Error']:
line = line.strip()
if line != '':
print_error('\t{line}'.format(line=line))
time.sleep(300)
for line in [line.strip() for line in par['Error'] if line.strip() != '']:
print_error('\t{line}'.format(line=line))
time.sleep(30)
else:
print_success('\nNo errors were encountered during imaging.')
time.sleep(10)
time.sleep(5)
pause('\nPress Enter to return to main menu... ')
def menu_windows_setup():
"""Format a drive, partition for MBR or GPT, apply a Windows image, and rebuild the boot files"""
errors = False
# Select the version of Windows to apply
os.system('cls')
selected_windows_version = select_windows_version()
if selected_windows_version is None:
abort_to_main_menu('Aborting Windows setup')
windows_version = select_windows_version()
# Find Windows image
image = find_windows_image(selected_windows_version['ImageFile'])
if not any(image):
print_error('Failed to find Windows source image for {winver}'.format(winver=selected_windows_version['Name']))
abort_to_main_menu('Aborting Windows setup')
windows_image = find_windows_image(bin, windows_version)
# Select drive to use as the OS drive
dest_drive = select_disk('To which drive are we installing Windows?')
if dest_drive is None:
abort_to_main_menu('Aborting Windows setup')
# Confirm drive format
print_warning('All data will be deleted from the following drive:')
print_warning('\t{Size}\t({Table}) {Name}'.format(**dest_drive))
if (not ask('Is this correct?')):
abort_to_main_menu('Aborting Windows setup')
# MBR/Legacy or GPT/UEFI?
use_gpt = True
if (BOOT_TYPE == 'UEFI'):
if (not ask("Setup drive using GPT (UEFI) layout?")):
use_gpt = False
else:
if (ask("Setup drive using MBR (legacy) layout?")):
use_gpt = False
dest_disk = select_disk('To which drive are we installing Windows?')
prep_disk_for_formatting(dest_disk)
# Safety check
print_warning('SAFETY CHECK\n')
print_error(' FORMATTING:\tDrive: {Size}\t[{Table}] ({Type}) {Name}'.format(**dest_drive))
if len(dest_drive['Partitions']) > 0:
width=len(str(len(dest_drive['Partitions'])))
for par in dest_drive['Partitions']:
if 'Letter' not in par or re.search(r'(RAW)', par['FileSystem']):
print_error('\t\tPartition {Number:>{width}}:\t{Size} {q}{Name}{q} ({FileSystem})\t\t{Description} ({OS})'.format(
width=width,
q='"' if par['Name'] != '' else '',
**par))
else:
print_error('\t\tPartition {Number:>{width}}:\t{Size} {q}{Name}{q} ({FileSystem})\t\t(Used space: {Used Space})'.format(
width=width,
q='"' if par['Name'] != '' else '',
**par))
else:
print_warning('\t\tNo partitions found')
if (use_gpt):
print(' Using: \tGPT (UEFI) layout')
else:
print(' Using: \tMBR (legacy) layout')
print_info(' Installing:\t{winver}'.format(winver=selected_windows_version['Name']))
print_error(dest_disk['Format Warnings'])
for par in dest_disk['Partitions']:
print_error(par['Display String'])
print_info('\n Installing:\t{winver}'.format(winver=windows_version['Name']))
if (not ask('\nIs this correct?')):
abort_to_main_menu('Aborting Windows setup')
# Release currently used volume letters (ensures that the drives will get S, T, & W as needed below)
remove_volume_letters(keep=image['Source'])
remove_volume_letters(keep=windows_image['Source'])
# Format and partition drive
if (use_gpt):
format_gpt(dest_drive, selected_windows_version['Family'])
if (dest_disk['Use GPT']):
format_gpt(dest_disk, windows_version['Family'])
else:
format_mbr(dest_drive)
format_mbr(dest_disk, windows_version['Family'])
# Apply Windows image
errors = False
print(' Applying image...')
cmd = '{bin}\\wimlib\\wimlib-imagex apply "{File}.{Ext}" "{ImageName}" W:\\ {Glob}'.format(bin=bin, **image, **selected_windows_version)
# Setup Windows
try:
run_program(cmd)
except subprocess.CalledProcessError:
setup_windows(bin, windows_image, windows_version)
setup_boot_files(windows_version)
except SetupException:
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)
time.sleep(30)
else:
print_success('\nNo errors were encountered during setup.')
time.sleep(10)
print_success('\nDone.')
time.sleep(5)
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']},
@ -351,10 +195,9 @@ def menu_main():
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'])
time.sleep(5)
print_info(' You can retry but if this crashes again an alternative approach may be required.')
pause('\nPress enter to return to the main menu')
elif (selection == 'C'):
run_program(['cmd', '-new_console:n'], check=False)
elif (selection == 'R'):
@ -362,7 +205,7 @@ def menu_main():
elif (selection == 'S'):
run_program(['wpeutil', 'shutdown'])
else:
quit()
sys.exit(0)
if __name__ == '__main__':
menu_main()

View file

@ -2,4 +2,5 @@
[LaunchApps]
wpeinit
wpeutil updatebootinfo
"%SystemDrive%\WK\conemu-maximus5\ConEmu.exe", /cmd cmd /k python %SystemDrive%\WK\Scripts\menu.py"
cd /d "%SystemDrive%\WK"
"%SystemDrive%\WK\ConEmu\ConEmu.exe", /cmd cmd /k python "%SystemDrive%\WK\Scripts\menu.py"

2
System32/menu.cmd Normal file
View file

@ -0,0 +1,2 @@
@echo off
python "%SystemDrive%\WK\Scripts\menu.py"

View file

@ -1,113 +0,0 @@
<?xml version="1.0"?>
<!-- Preference file for Explorer++ -->
<ExplorerPlusPlus>
<Settings>
<Setting name="AllowMultipleInstances">yes</Setting>
<Setting name="AlwaysOpenInNewTab">no</Setting>
<Setting name="AlwaysShowTabBar">yes</Setting>
<Setting name="AutoArrangeGlobal">yes</Setting>
<Setting name="CheckBoxSelection">no</Setting>
<Setting name="CloseMainWindowOnTabClose">yes</Setting>
<Setting name="ConfirmCloseTabs">no</Setting>
<Setting name="DisableFolderSizesNetworkRemovable">no</Setting>
<Setting name="DisplayCentreColor" r="255" g="255" b="255"/>
<Setting name="DisplayFont" Height="-13" Width="0" Weight="500" Italic="no" Underline="no" Strikeout="no" Font="Segoe UI"/>
<Setting name="DisplaySurroundColor" r="0" g="94" b="138"/>
<Setting name="DisplayTextColor" r="0" g="0" b="0"/>
<Setting name="DisplayWindowHeight">90</Setting>
<Setting name="DoubleClickTabClose">yes</Setting>
<Setting name="ExtendTabControl">no</Setting>
<Setting name="ForceSameTabWidth">no</Setting>
<Setting name="ForceSize">no</Setting>
<Setting name="HandleZipFiles">no</Setting>
<Setting name="HideLinkExtensionGlobal">no</Setting>
<Setting name="HideSystemFilesGlobal">no</Setting>
<Setting name="InfoTipType">0</Setting>
<Setting name="InsertSorted">yes</Setting>
<Setting name="Language">9</Setting>
<Setting name="LargeToolbarIcons">no</Setting>
<Setting name="LastSelectedTab">0</Setting>
<Setting name="LockToolbars">yes</Setting>
<Setting name="NextToCurrent">no</Setting>
<Setting name="NewTabDirectory">::{20D04FE0-3AEA-1069-A2D8-08002B30309D}</Setting>
<Setting name="OneClickActivate">no</Setting>
<Setting name="OneClickActivateHoverTime">500</Setting>
<Setting name="OverwriteExistingFilesConfirmation">yes</Setting>
<Setting name="PlayNavigationSound">yes</Setting>
<Setting name="ReplaceExplorerMode">1</Setting>
<Setting name="ShowAddressBar">yes</Setting>
<Setting name="ShowApplicationToolbar">no</Setting>
<Setting name="ShowBookmarksToolbar">no</Setting>
<Setting name="ShowDrivesToolbar">no</Setting>
<Setting name="ShowDisplayWindow">yes</Setting>
<Setting name="ShowExtensions">yes</Setting>
<Setting name="ShowFilePreviews">yes</Setting>
<Setting name="ShowFolders">yes</Setting>
<Setting name="ShowFolderSizes">no</Setting>
<Setting name="ShowFriendlyDates">yes</Setting>
<Setting name="ShowFullTitlePath">no</Setting>
<Setting name="ShowGridlinesGlobal">yes</Setting>
<Setting name="ShowHiddenGlobal">yes</Setting>
<Setting name="ShowInfoTips">yes</Setting>
<Setting name="ShowInGroupsGlobal">no</Setting>
<Setting name="ShowPrivilegeLevelInTitleBar">yes</Setting>
<Setting name="ShowStatusBar">yes</Setting>
<Setting name="ShowTabBarAtBottom">no</Setting>
<Setting name="ShowTaskbarThumbnails">yes</Setting>
<Setting name="ShowToolbar">yes</Setting>
<Setting name="ShowUserNameTitleBar">yes</Setting>
<Setting name="SizeDisplayFormat">1</Setting>
<Setting name="SortAscendingGlobal">yes</Setting>
<Setting name="StartupMode">1</Setting>
<Setting name="SynchronizeTreeview">yes</Setting>
<Setting name="TVAutoExpandSelected">no</Setting>
<Setting name="UseFullRowSelect">no</Setting>
<Setting name="ToolbarState" Button0="Back" Button1="Forward" Button2="Up" Button3="Separator" Button4="Folders" Button5="Separator" Button6="Cut" Button7="Copy" Button8="Paste" Button9="Delete" Button10="Delete permanently" Button11="Properties" Button12="Search" Button13="Separator" Button14="New Folder" Button15="Copy To" Button16="Move To" Button17="Separator" Button18="Views" Button19="Show Command Prompt" Button20="Refresh" Button21="Separator" Button22="Bookmark the current tab" Button23="Organize Bookmarks"/>
<Setting name="TreeViewDelayEnabled">no</Setting>
<Setting name="TreeViewWidth">208</Setting>
<Setting name="ViewModeGlobal">4</Setting>
</Settings>
<WindowPosition>
<Setting name="Position" Flags="2" ShowCmd="3" MinPositionX="0" MinPositionY="4" MaxPositionX="-1" MaxPositionY="-1" NormalPositionLeft="1023" NormalPositionTop="8" NormalPositionRight="1159" NormalPositionBottom="72"/>
</WindowPosition>
<Tabs>
<Tab name="0" Directory="C:\" ApplyFilter="no" AutoArrange="yes" Filter="" FilterCaseSensitive="no" ShowGridlines="yes" ShowHidden="yes" ShowInGroups="no" SortAscending="yes" SortMode="4" ViewMode="4" Locked="no" AddressLocked="no" UseCustomName="no" CustomName="">
<Columns>
<Column name="Generic" Name="yes" Name_Width="547" Type="yes" Type_Width="150" Size="yes" Size_Width="150" DateModified="yes" DateModified_Width="150" Attributes="no" Attributes_Width="150" SizeOnDisk="no" SizeOnDisk_Width="150" ShortName="no" ShortName_Width="150" Owner="no" Owner_Width="150" ProductName="no" ProductName_Width="150" Company="no" Company_Width="150" Description="no" Description_Width="150" FileVersion="no" FileVersion_Width="150" ProductVersion="no" ProductVersion_Width="150" ShortcutTo="no" ShortcutTo_Width="150" HardLinks="no" HardLinks_Width="150" Extension="no" Extension_Width="150" Created="no" Created_Width="150" Accessed="no" Accessed_Width="150" Title="no" Title_Width="150" Subject="no" Subject_Width="150" Author="no" Author_Width="150" Keywords="no" Keywords_Width="150" Comment="no" Comment_Width="150" CameraModel="no" CameraModel_Width="150" DateTaken="no" DateTaken_Width="150" Width="no" Width_Width="150" Height="no" Height_Width="150"/>
<Column name="MyComputer" Name="yes" Name_Width="150" TotalSize="yes" TotalSize_Width="150" FreeSpace="no" FreeSpace_Width="150" FileSystem="no" FileSystem_Width="150"/>
<Column name="ControlPanel" Name="yes" Name_Width="150"/>
<Column name="RecycleBin" Name="yes" Name_Width="150" OriginalLocation="yes" OriginalLocation_Width="150" DateDeleted="yes" DateDeleted_Width="150" Size="yes" Size_Width="150" Type="yes" Type_Width="150" DateModified="yes" DateModified_Width="150"/>
<Column name="Printers" Name="yes" Name_Width="150" Documents="yes" Documents_Width="150" Status="yes" Status_Width="150"/>
<Column name="Network" Name="yes" Name_Width="150" Owner="yes" Owner_Width="150"/>
<Column name="NetworkPlaces" Name="yes" Name_Width="150"/>
</Columns>
</Tab>
</Tabs>
<DefaultColumns>
<Column name="Generic" Name="yes" Name_Width="150" Type="yes" Type_Width="150" Size="yes" Size_Width="150" DateModified="yes" DateModified_Width="150" Attributes="no" Attributes_Width="150" SizeOnDisk="no" SizeOnDisk_Width="150" ShortName="no" ShortName_Width="150" Owner="no" Owner_Width="150" ProductName="no" ProductName_Width="150" Company="no" Company_Width="150" Description="no" Description_Width="150" FileVersion="no" FileVersion_Width="150" ProductVersion="no" ProductVersion_Width="150" ShortcutTo="no" ShortcutTo_Width="150" HardLinks="no" HardLinks_Width="150" Extension="no" Extension_Width="150" Created="no" Created_Width="150" Accessed="no" Accessed_Width="150" Title="no" Title_Width="150" Subject="no" Subject_Width="150" Author="no" Author_Width="150" Keywords="no" Keywords_Width="150" Comment="no" Comment_Width="150" CameraModel="no" CameraModel_Width="150" DateTaken="no" DateTaken_Width="150" Width="no" Width_Width="150" Height="no" Height_Width="150"/>
<Column name="MyComputer" Name="yes" Name_Width="150" TotalSize="yes" TotalSize_Width="150" FreeSpace="no" FreeSpace_Width="150" FileSystem="no" FileSystem_Width="150"/>
<Column name="ControlPanel" Name="yes" Name_Width="150"/>
<Column name="RecycleBin" Name="yes" Name_Width="150" OriginalLocation="yes" OriginalLocation_Width="150" DateDeleted="yes" DateDeleted_Width="150" Size="yes" Size_Width="150" Type="yes" Type_Width="150" DateModified="yes" DateModified_Width="150"/>
<Column name="Printers" Name="yes" Name_Width="150" Documents="yes" Documents_Width="150" Status="yes" Status_Width="150"/>
<Column name="Network" Name="yes" Name_Width="150" Owner="yes" Owner_Width="150"/>
<Column name="NetworkPlaces" Name="yes" Name_Width="150"/>
</DefaultColumns>
<Bookmarks>
</Bookmarks>
<ApplicationToolbar>
</ApplicationToolbar>
<Toolbars>
<Toolbar name="0" id="0" Style="769" Length="604"/>
<Toolbar name="1" id="1" Style="257" Length="0"/>
<Toolbar name="2" id="2" Style="777" Length="0"/>
<Toolbar name="3" id="3" Style="777" Length="618"/>
<Toolbar name="4" id="4" Style="777" Length="0"/>
</Toolbars>
<ColorRules>
<ColorRule name="Compressed files" FilenamePattern="" Attributes="2048" r="0" g="0" b="255"/>
<ColorRule name="Encrypted files" FilenamePattern="" Attributes="16384" r="0" g="128" b="0"/>
</ColorRules>
<State>
<DialogState name="MassRename" PosX="717" PosY="376" Width="501" Height="294" ColumnWidth1="250" ColumnWidth2="250"/>
</State>
</ExplorerPlusPlus>

View file

@ -1,7 +0,0 @@
[HWMonitor]
VERSION=1.2.9.0
USE_ACPI=1
USE_SMBUS=1
USE_SMART=1
USE_DISPLAY=1
UPDATES=0

View file

@ -1,4 +1,3 @@
[LogfileSettings]
COMP=1
COMP_SP=1
@ -172,7 +171,7 @@ PCIdirect=1
OpenSystemSummary=0
RememberPreferences=1
LargeFonts=0
OpenSensors=1
OpenSensors=0
MinimalizeMainWnd=0
MinimalizeSensors=0
PersistentDriver=0
@ -180,7 +179,7 @@ UseHPET=1
AutoUpdate=0
GPUI2CNVAPI=1
GPUI2CADL=0
SensorsOnly=1
SensorsOnly=0
AcpiEval=1
CpuClkFromBusClk=1
BusClkPolling=1

View file

@ -4,11 +4,11 @@ QDir_Id=0
useColorStart=1
Als=12
designe_mode=2
WinRC=-1;-29;1441;873
showCmd=1
WinRC=66;87;1026;761
showCmd=3
StartCrash=0
default_tab=
Max=3
Max=1
show_ext_in_type=1
title_info=1
adresbar_style=1
@ -56,4 +56,14 @@ Disable=0
[Quick-Links]
WK=%systemdrive%/WK
[Options]
Start=0
Start=7
[X-Size]
mode=1
dig=0
fld_size=1
ths_sep=1
type=0
precent=1
ff_cnt=1
block_no_focus=1
nosort_fld_size=1

View file

@ -1,113 +0,0 @@
<?xml version="1.0"?>
<!-- Preference file for Explorer++ -->
<ExplorerPlusPlus>
<Settings>
<Setting name="AllowMultipleInstances">yes</Setting>
<Setting name="AlwaysOpenInNewTab">no</Setting>
<Setting name="AlwaysShowTabBar">yes</Setting>
<Setting name="AutoArrangeGlobal">yes</Setting>
<Setting name="CheckBoxSelection">no</Setting>
<Setting name="CloseMainWindowOnTabClose">yes</Setting>
<Setting name="ConfirmCloseTabs">no</Setting>
<Setting name="DisableFolderSizesNetworkRemovable">no</Setting>
<Setting name="DisplayCentreColor" r="255" g="255" b="255"/>
<Setting name="DisplayFont" Height="-13" Width="0" Weight="500" Italic="no" Underline="no" Strikeout="no" Font="Segoe UI"/>
<Setting name="DisplaySurroundColor" r="0" g="94" b="138"/>
<Setting name="DisplayTextColor" r="0" g="0" b="0"/>
<Setting name="DisplayWindowHeight">90</Setting>
<Setting name="DoubleClickTabClose">yes</Setting>
<Setting name="ExtendTabControl">no</Setting>
<Setting name="ForceSameTabWidth">no</Setting>
<Setting name="ForceSize">no</Setting>
<Setting name="HandleZipFiles">no</Setting>
<Setting name="HideLinkExtensionGlobal">no</Setting>
<Setting name="HideSystemFilesGlobal">no</Setting>
<Setting name="InfoTipType">0</Setting>
<Setting name="InsertSorted">yes</Setting>
<Setting name="Language">9</Setting>
<Setting name="LargeToolbarIcons">no</Setting>
<Setting name="LastSelectedTab">0</Setting>
<Setting name="LockToolbars">yes</Setting>
<Setting name="NextToCurrent">no</Setting>
<Setting name="NewTabDirectory">::{20D04FE0-3AEA-1069-A2D8-08002B30309D}</Setting>
<Setting name="OneClickActivate">no</Setting>
<Setting name="OneClickActivateHoverTime">500</Setting>
<Setting name="OverwriteExistingFilesConfirmation">yes</Setting>
<Setting name="PlayNavigationSound">yes</Setting>
<Setting name="ReplaceExplorerMode">1</Setting>
<Setting name="ShowAddressBar">yes</Setting>
<Setting name="ShowApplicationToolbar">no</Setting>
<Setting name="ShowBookmarksToolbar">no</Setting>
<Setting name="ShowDrivesToolbar">no</Setting>
<Setting name="ShowDisplayWindow">yes</Setting>
<Setting name="ShowExtensions">yes</Setting>
<Setting name="ShowFilePreviews">yes</Setting>
<Setting name="ShowFolders">yes</Setting>
<Setting name="ShowFolderSizes">no</Setting>
<Setting name="ShowFriendlyDates">yes</Setting>
<Setting name="ShowFullTitlePath">no</Setting>
<Setting name="ShowGridlinesGlobal">yes</Setting>
<Setting name="ShowHiddenGlobal">yes</Setting>
<Setting name="ShowInfoTips">yes</Setting>
<Setting name="ShowInGroupsGlobal">no</Setting>
<Setting name="ShowPrivilegeLevelInTitleBar">yes</Setting>
<Setting name="ShowStatusBar">yes</Setting>
<Setting name="ShowTabBarAtBottom">no</Setting>
<Setting name="ShowTaskbarThumbnails">yes</Setting>
<Setting name="ShowToolbar">yes</Setting>
<Setting name="ShowUserNameTitleBar">yes</Setting>
<Setting name="SizeDisplayFormat">1</Setting>
<Setting name="SortAscendingGlobal">yes</Setting>
<Setting name="StartupMode">1</Setting>
<Setting name="SynchronizeTreeview">yes</Setting>
<Setting name="TVAutoExpandSelected">no</Setting>
<Setting name="UseFullRowSelect">no</Setting>
<Setting name="ToolbarState" Button0="Back" Button1="Forward" Button2="Up" Button3="Separator" Button4="Folders" Button5="Separator" Button6="Cut" Button7="Copy" Button8="Paste" Button9="Delete" Button10="Delete permanently" Button11="Properties" Button12="Search" Button13="Separator" Button14="New Folder" Button15="Copy To" Button16="Move To" Button17="Separator" Button18="Views" Button19="Show Command Prompt" Button20="Refresh" Button21="Separator" Button22="Bookmark the current tab" Button23="Organize Bookmarks"/>
<Setting name="TreeViewDelayEnabled">no</Setting>
<Setting name="TreeViewWidth">208</Setting>
<Setting name="ViewModeGlobal">4</Setting>
</Settings>
<WindowPosition>
<Setting name="Position" Flags="2" ShowCmd="3" MinPositionX="0" MinPositionY="4" MaxPositionX="-1" MaxPositionY="-1" NormalPositionLeft="1023" NormalPositionTop="8" NormalPositionRight="1159" NormalPositionBottom="72"/>
</WindowPosition>
<Tabs>
<Tab name="0" Directory="C:\" ApplyFilter="no" AutoArrange="yes" Filter="" FilterCaseSensitive="no" ShowGridlines="yes" ShowHidden="yes" ShowInGroups="no" SortAscending="yes" SortMode="4" ViewMode="4" Locked="no" AddressLocked="no" UseCustomName="no" CustomName="">
<Columns>
<Column name="Generic" Name="yes" Name_Width="547" Type="yes" Type_Width="150" Size="yes" Size_Width="150" DateModified="yes" DateModified_Width="150" Attributes="no" Attributes_Width="150" SizeOnDisk="no" SizeOnDisk_Width="150" ShortName="no" ShortName_Width="150" Owner="no" Owner_Width="150" ProductName="no" ProductName_Width="150" Company="no" Company_Width="150" Description="no" Description_Width="150" FileVersion="no" FileVersion_Width="150" ProductVersion="no" ProductVersion_Width="150" ShortcutTo="no" ShortcutTo_Width="150" HardLinks="no" HardLinks_Width="150" Extension="no" Extension_Width="150" Created="no" Created_Width="150" Accessed="no" Accessed_Width="150" Title="no" Title_Width="150" Subject="no" Subject_Width="150" Author="no" Author_Width="150" Keywords="no" Keywords_Width="150" Comment="no" Comment_Width="150" CameraModel="no" CameraModel_Width="150" DateTaken="no" DateTaken_Width="150" Width="no" Width_Width="150" Height="no" Height_Width="150"/>
<Column name="MyComputer" Name="yes" Name_Width="150" TotalSize="yes" TotalSize_Width="150" FreeSpace="no" FreeSpace_Width="150" FileSystem="no" FileSystem_Width="150"/>
<Column name="ControlPanel" Name="yes" Name_Width="150"/>
<Column name="RecycleBin" Name="yes" Name_Width="150" OriginalLocation="yes" OriginalLocation_Width="150" DateDeleted="yes" DateDeleted_Width="150" Size="yes" Size_Width="150" Type="yes" Type_Width="150" DateModified="yes" DateModified_Width="150"/>
<Column name="Printers" Name="yes" Name_Width="150" Documents="yes" Documents_Width="150" Status="yes" Status_Width="150"/>
<Column name="Network" Name="yes" Name_Width="150" Owner="yes" Owner_Width="150"/>
<Column name="NetworkPlaces" Name="yes" Name_Width="150"/>
</Columns>
</Tab>
</Tabs>
<DefaultColumns>
<Column name="Generic" Name="yes" Name_Width="150" Type="yes" Type_Width="150" Size="yes" Size_Width="150" DateModified="yes" DateModified_Width="150" Attributes="no" Attributes_Width="150" SizeOnDisk="no" SizeOnDisk_Width="150" ShortName="no" ShortName_Width="150" Owner="no" Owner_Width="150" ProductName="no" ProductName_Width="150" Company="no" Company_Width="150" Description="no" Description_Width="150" FileVersion="no" FileVersion_Width="150" ProductVersion="no" ProductVersion_Width="150" ShortcutTo="no" ShortcutTo_Width="150" HardLinks="no" HardLinks_Width="150" Extension="no" Extension_Width="150" Created="no" Created_Width="150" Accessed="no" Accessed_Width="150" Title="no" Title_Width="150" Subject="no" Subject_Width="150" Author="no" Author_Width="150" Keywords="no" Keywords_Width="150" Comment="no" Comment_Width="150" CameraModel="no" CameraModel_Width="150" DateTaken="no" DateTaken_Width="150" Width="no" Width_Width="150" Height="no" Height_Width="150"/>
<Column name="MyComputer" Name="yes" Name_Width="150" TotalSize="yes" TotalSize_Width="150" FreeSpace="no" FreeSpace_Width="150" FileSystem="no" FileSystem_Width="150"/>
<Column name="ControlPanel" Name="yes" Name_Width="150"/>
<Column name="RecycleBin" Name="yes" Name_Width="150" OriginalLocation="yes" OriginalLocation_Width="150" DateDeleted="yes" DateDeleted_Width="150" Size="yes" Size_Width="150" Type="yes" Type_Width="150" DateModified="yes" DateModified_Width="150"/>
<Column name="Printers" Name="yes" Name_Width="150" Documents="yes" Documents_Width="150" Status="yes" Status_Width="150"/>
<Column name="Network" Name="yes" Name_Width="150" Owner="yes" Owner_Width="150"/>
<Column name="NetworkPlaces" Name="yes" Name_Width="150"/>
</DefaultColumns>
<Bookmarks>
</Bookmarks>
<ApplicationToolbar>
</ApplicationToolbar>
<Toolbars>
<Toolbar name="0" id="0" Style="769" Length="604"/>
<Toolbar name="1" id="1" Style="257" Length="0"/>
<Toolbar name="2" id="2" Style="777" Length="0"/>
<Toolbar name="3" id="3" Style="777" Length="618"/>
<Toolbar name="4" id="4" Style="777" Length="0"/>
</Toolbars>
<ColorRules>
<ColorRule name="Compressed files" FilenamePattern="" Attributes="2048" r="0" g="0" b="255"/>
<ColorRule name="Encrypted files" FilenamePattern="" Attributes="16384" r="0" g="128" b="0"/>
</ColorRules>
<State>
<DialogState name="MassRename" PosX="717" PosY="376" Width="501" Height="294" ColumnWidth1="250" ColumnWidth2="250"/>
</State>
</ExplorerPlusPlus>

View file

@ -1,7 +0,0 @@
[HWMonitor]
VERSION=1.2.9.0
USE_ACPI=1
USE_SMBUS=1
USE_SMART=1
USE_DISPLAY=1
UPDATES=0

View file

@ -633,7 +633,7 @@ PCIdirect=1
OpenSystemSummary=0
RememberPreferences=1
LargeFonts=0
OpenSensors=1
OpenSensors=0
MinimalizeMainWnd=0
MinimalizeSensors=0
PersistentDriver=0
@ -641,7 +641,7 @@ UseHPET=1
AutoUpdate=0
GPUI2CNVAPI=1
GPUI2CADL=0
SensorsOnly=1
SensorsOnly=0
AcpiEval=1
CpuClkFromBusClk=1
BusClkPolling=1

View file

@ -4,11 +4,11 @@ QDir_Id=0
useColorStart=1
Als=12
designe_mode=2
WinRC=-1;-29;1441;873
showCmd=1
WinRC=8;15;968;689
showCmd=3
StartCrash=0
default_tab=
Max=3
Max=1
show_ext_in_type=1
title_info=1
adresbar_style=1
@ -56,4 +56,14 @@ Disable=0
[Quick-Links]
WK=%systemdrive%/WK
[Options]
Start=0
Start=7
[X-Size]
mode=1
dig=0
fld_size=1
ths_sep=1
type=0
precent=1
ff_cnt=1
block_no_focus=1
nosort_fld_size=1

View file

@ -2,7 +2,7 @@
:Init
setlocal EnableDelayedExpansion
title WinPE 10 creation tool
title WK-WinPE creation tool
color 1b
pushd %~dp0
@ -125,25 +125,26 @@ for %%a in (amd64 x86) do (
robocopy /s /r:3 /w:0 "!wd!\Scripts" "!mount!\WK\Scripts"
rem Add System32 Stuff
copy /y "!wd!\System32\menu.cmd" "!mount!\Windows\System32\menu.cmd"
copy /y "!wd!\System32\Winpeshl.ini" "!mount!\Windows\System32\Winpeshl.ini"
rem Background
rem Background
takeown /f "!mount!\Windows\System32\winpe.jpg" /a
icacls "!mount!\Windows\System32\winpe.jpg" /grant administrators:F
copy /y "!wd!\System32\winpe.jpg" "!mount!\Windows\System32\winpe.jpg"
copy /y "!wd!\System32\winpe.jpg" "!mount!\WK\conemu-maximus5\winpe.jpg"
copy /y "!wd!\System32\winpe.jpg" "!mount!\WK\ConEmu\ConEmu.jpg"
rem Registry Edits
reg load HKLM\WinPE-SW "!mount!\Windows\System32\config\SOFTWARE"
reg load HKLM\WinPE-SYS "!mount!\Windows\System32\config\SYSTEM"
rem Add 7-Zip and Python to path
rem Add 7-Zip and Python to path
reg add "HKLM\WinPE-SYS\ControlSet001\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d "%%SystemRoot%%\system32;%%SystemRoot%%;%%SystemRoot%%\System32\Wbem;%%SYSTEMROOT%%\System32\WindowsPowerShell\v1.0\;%%SystemDrive%%\WK\7-Zip;%%SystemDrive%%\WK\python;%%SystemDrive%%\WK\wimlib" /f
rem Replace Notepad
rem Replace Notepad
reg add "HKLM\WinPE-SW\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v Debugger /t REG_SZ /d "X:\WK\Notepad2\Notepad2-Mod.exe /z" /f
rem Unload registry hives
rem Unload registry hives
reg unload HKLM\WinPE-SW
reg unload HKLM\WinPE-SYS
@ -151,8 +152,8 @@ for %%a in (amd64 x86) do (
dism /unmount-image /mountdir:"!mount!" /commit
rem Create ISO
del "WinPE-!iso_date!-!arch!.iso"
call makewinpemedia.cmd /iso "!pe_files!" "WinPE-!iso_date!-!arch!-testing.iso"
del "wk-winpe-!iso_date!-!arch!.iso"
call makewinpemedia.cmd /iso "!pe_files!" "wk-winpe-!iso_date!-!arch!.iso"
)
goto Done