jmclaren7 / windows-setup-helper

GUI for Windows Installer to access tools and select installer automations from WinPE
Other
55 stars 8 forks source link
recovery tools windows winpe

Windows Setup Helper

This project provides a GUI to use along side the traditional Windows installer interface on a normal Windows installation ISO/USB. You'll have access to whatever scripts and tools you choose to add along with some great included tools and example scripts. Automated installs will skip everything but disk selection, once the install completes and Windows boots, any scripts you selected will automatically run.

To use Windows Setup Helper you'll need to add the project files to a Windows installer image along with your custom scripts and tools. I've created a script (Build.bat) to help get this done quickly, just follow the instructions below.

Table of Contents

Features


Building, Booting, Installing https://www.youtube.com/watch?v=NjPxmrIeGhw
[![](https://img.youtube.com/vi/NjPxmrIeGhw/maxresdefault.jpg)](https://www.youtube.com/watch?v=NjPxmrIeGhw)

Included Tools

You can add any x64 executable, .bat, .au3, .ps1, or .reg but here are some basic tools to get you started, closed source software that I've included is noted as such.

A number of useful example scripts are included as well, each script has comments in it describing its purpose.

Adding Tools/Scripts/Programs/Drivers

Advanced features related to these folders can be found below.

Create The ISO (Build.bat)

Using DISM is the recommended way to update Windows images (wim), it's more advanced but can be faster for repeatedly creating the ISO, the Build.bat script will help automate the process.

Prerequisites

Running Build.bat

  1. Edit Build.bat to configure various paths
    • Set "sourceiso" to the path of your downloaded Windows ISO
    • Set "mediapath" to the directory where you want to extract the ISO files
    • Set "outputiso" to the path for the new ISO generated by the script
  2. Run Build.bat with administrator privileges
  3. Toggle build steps and select F to begin

Prepare Using Other Methods

Any method of modifying a WIM image and generating an ISO should work. You'll need to copy the project files ("Helper" and "Windows" folders) to the root of the boot.wim image.

Create Bootable USB From ISO

  1. Download and open Rufus
  2. Select your target USB device and source ISO image
  3. (Optional) Enable the hidden "dual UEFI/BIOS mode" by pressing ALT + E (a message in the bottom left will briefly tell you if you turned it on or off) then set the target system to "BIOS or UEFI" and file system to FAT32
  4. Click start

Other Customizations & Features

I've created a number of features which may not be clearly documented but I've tried to include examples for each of these in the project, as time goes on and if interest in the project increases I will begin to document more of these.

Special Files & Folders (Tools/Logon/PEAutoRun)

Build.bat "ExtraFiles"

This optional setting in Build.bat is a directory of files that are added to the WinPE image along with the project files. This allows you to keep your customizations separate from the project files to make updating easier. Any files copied from this folder to the WinPE image will overwrite any existing files, folders will be merged.

If you specified "D:\extrafiles" in the build script you would likely want to have folders like "D:\extrafiles\Helper\Tools" and "D:\extrafiles\Helper\Logon" where you keep the files you want to add to the project.

Misc

TightVNC

Running TightVNC server allows remote access to the WinPE instance from another machine on the network. This can be useful if you had a user at a remote site boot to a USB and then you VNC into it to do recovery, diagnostics or Windows installation.

NetBird

NetBird is an overlay/mesh network tool and the NetBird client happens to work well in WinPE, implemented correctly you can have your WinPE boot and be remotely accessible with VNC over the NetBird network automatically. When a WinPE client is booted and online you'll see it apear in the Netbird dashboard along with its Netbird IP. Use your prefered VNC client to connect to that IP one the correct port (see TightVNC information above)

NetBird settings

The default settings Netbird uses would not be secure for this use case and would allow all traffic between all connected clients. These steps are for limiting that connectivity by allowing connections from an approved user group to the WinPE clients and blocking all connections coming from the WinPE clients. These instructions assume your Netbird account has a default configuration.