Skip to content

spddl/WinISO-Wizard

Repository files navigation

translation [PT] [DE] [RU] [IT] [FR]

WinISO Wizard

This is just a template for editing Windows ISOs, primarily used for Windows 11 ISOs from UUP dump, other Windows versions from other sources can certainly be edited as well after some modifications. If you want to make modifications please create a fork.

This is not a "menu-driven simple solution for everyone". You need Powershell and Windows knowledge for this. Once the desired preset is created, it is possible to modify one or more ISOs unattended fully automatically.

With this template, you can use DISM in combination with Powershell and Powerrun to open the image and customize everything.

For discussion with other users you can use this Discord server


First we need a Windows ISO, if it is not clear which build number from which channel is the latest recommend using the overview changewindows.org.

The build number we can search and configure on UUP dump.

  • Language: (personal preferences)
  • Edition: I recommend to select only "Windows Pro"
  • Download method: "Download and convert to ISO" with the checkbox "Include updates (Windows converter only)". We also want to include .Net 3.5 in the ISO later but we will do that afterwards (DISM\image_5_AddDotNet.psm1).

For showcase purposes I will take modifications from the PC-Guide from AMIT and Tweaks from CYNAR.

We can change the filesystem and therefore also the registry. Pretty much every setting is in the filesystem or registry so every setting can be changed before the ISO is deployed. And for user dependent settings (e.g. hardware) or settings created by Windows after the installation we use the postinstall. A postinstall is executed only once after the installation. To write/change what could not be changed before.

It is recommended to test a newly created ISO in a VM first (e.g. Oracle VM VirtualBox, Hyper-V or VMware Workstation).

Short introduction to the folder structure:

Folder structure:

One thing in advance with the _HereWeGo.ps1 the process is started, but the UUPDump ISO name must be inserted.

  • \_FINISH_ISO

    • The finished ISO will later be in this folder
  • \_UUPdump_ISO

    • The ISO created by UUP Dump belongs here (e.g. 22621.1344.230221-1654.NI_RELEASE_SVC_PROD3_CLIENTPRO_OEMRET_X64FRE_EN-US.ISO)
  • \DISM

    • 0_Preparation.psm1

      • here it is checked if the tools and the ISO are existing
    • 1_ISO_unpack.psm1

      • the ISO is unpacked with 7zip and the Windows version is identified
    • boot_1_Backup.psm1

      • The image is copied to the root directory and mounted for customization
    • boot_2_TPM_ByPass.psm1

      • Here e.g. imported the TPM bypass and other settings
    • boot_3_Dismount-Image.psm1

      • The image is unmounted again
    • image_1_Backup.psm1

      • The image is copied to the root directory
    • image_2_ExtractWIM.psm1

      • The Windows image is mounted for customization
    • image_3_AppxProvisionedPackage.psm1

      • removes provisioned packages and turns off unnecessary windows features
    • image_4_CleanUp.psm1

      • Deletes files/folders that are left
    • image_5_AddDotNet.psm1

      • installs NetFx3
    • image_6_CopyFileSystem.psm1

      • Copies the "FileSystem" folder with our new files
    • image_7_Registry.psm1

      • Applies the registry files from the "Registry" folder
    • image_8_Dismount-Image.psm1

      • unmounted the image again
    • 2_CopyData.psm1

      • replaces the original data (boot/image) with the modified ones
    • 3_ISO_create.psm1

      • creates the ISO and creates a SHA-256 HASH value and renames the ISO with it.
  • \FileSystem

    • Here you can place files that should be found later after the Windows installation.
  • \Registry

    • The registry files in the folder are always applied, those in the various folder are applied only if the WinVer matches. The function consonance in DISM\helper.psm1 helps to understand how the format must look like.
  • \Tools

    • Here are the tools that will be used

Maybe helpful Windows basics:

OOBE

If you want to abbreviate the OOBE and don't know how to use an autounattend.xml generator. documentation

Registry

It is possible to modify any part of the registry. It should be clear that we need to understand the structure and write the registry values to the correct file. documentation

For example, it is necessary to divide some paths by registry location. HKLM\Software get a file in the Registry folder and HKLM\System get another file in this folder. Later in the process both are written to different files (Windows\System32\config\SOFTWARE & SYSTEM).

FileSystem

The FileSystem is fully accessible and with the help of PowerRun files are fully editable even with TrustedInstaller.

The files and folders to be deleted can be specified in the DISM\image_4_CleanUp.psm1 file

PostInstall Possibilities

The easiest way to find out which Registry values were not included is to check the Registry files after the Windows installation with RegFileChecker. These should be included in the PostInstall.

Works once:

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce (documentation)
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components (unofficial documentation)

Works every time you start:

  • Users\%user%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run (documentation)

services/drivers and task scheduler are other possibilities but not so easy to implement

The main tools in this project are:

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published