How To Use W10UI To Create Windows 10/Windows 11 ISOs With All Windows Updates Pre-Installed

Discussion in 'Windows 10' started by KedarWolf, Jul 12, 2021.

  1. orgon3

    orgon3 MDL Novice

    Oct 22, 2016
    11
    0
    0
    Thanks for the tutorial. Quick question though. In your first W10UI.cmd (when integrating updates into an ISO) you have Cleanup and ResetBase enabled. May I ask why you chose this and if you recommend it? If I then use that ISO to install windows to a PC, can that PC still use Reset this PC? (is that note for ISO images or for in-place upgrades)
     
  2. Enthousiast

    Enthousiast MDL Tester

    Oct 30, 2009
    50,494
    107,277
    450
    Cleanup = compressing the superseded components.
    Resetbase = entirely removing the superseded components.

    For Win 11 22h2 it's not recommended to use any cleanup when you're planning on enrolling into the IP channels or manually installing Beta channel updates.

    Most users use resetbase (which will only work when cleanup is enabled) to reduce the install.wim file size (i.e. trying to fit FAT32 max. file size of 4GB) and also results in a smaller ISO file size.

    Only on 1809 builds the resetbase option will break the "Reset PC" option under Recovery in settings, but now only Server/Enterprise 2019 LTSC are the only supported 1809 SKUs this is getting less important.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  3. orgon3

    orgon3 MDL Novice

    Oct 22, 2016
    11
    0
    0
    There have been a few updates. If I'm building a public release of Win 11 (I guess 22631.xxxx), would I want to enable LCUwinre or UpdtBootFiles? (Currently I'm enabling Net35, Cleanup, ResetBase, WinRE, and ISO) As always, thanks for your contributions and your support!
     
  4. Enthousiast

    Enthousiast MDL Tester

    Oct 30, 2009
    50,494
    107,277
    450
    In a few minutes the new monthly updates will be published and i will run W10UI to test all with my preferred settings:
    Code:
    :: target distribution, wim file or offline image
    :: leave it blank to update current online os, or automatically detect wim file next to the script
    set "Target=%~dp022621_Work_x64_NL"
    
    :: updates location
    :: leave it blank to automatically detect the current script directory
    set "Repo=%~dp022631_Updates_x64"
    
    :: dism.exe tool custom path (if Host OS is Win8.1 or earlier and no Win10 ADK installed)
    set "DismRoot=dism.exe"
    
    :: enable .NET 3.5 feature
    set Net35=1
    
    :: optional, specify custom "folder" path for microsoft-windows-netfx3-ondemand-package.cab
    set "Net35Source=%~dp022621_SXS_x64"
    
    :: Cleanup OS images to "compress" superseded components (might take long time to complete)
    set Cleanup=1
    
    :: Rebase OS images to "remove" superseded components (warning: break "Reset this PC" feature)
    :: require first to set Cleanup=1
    set ResetBase=1
    
    :: update winre.wim if detected inside install.wim
    set WinRE=1
    
    :: Force updating winre.wim with Cumulative Update regardless if SafeOS update detected
    set LCUwinre=1
    
    :: update ISO boot files bootmgr/memtest/efisys.bin from Cumulative Update
    set UpdtBootFiles=1
    
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  5. VinceCloud

    VinceCloud MDL Novice

    Aug 21, 2024
    5
    0
    0
    I made more progress than before by following some of the video guides released last year.

    Here's what I did:
    • Made a base EN-US ISO from UUPDump (26100.1).
    • Downloaded language packs and FOD components from the provided links in the README
    • Retrieved updates using WHDownloader and placed the 26100-specific ones in the updates folder.
    • Applied registry modifications to prevent language packs from being uninstalled. *
    Current Issues:
    1. The language selection screen in OOBE doesn’t appear until after running Sysprep.
    2. Store apps remain in English until they are manually updated through the Microsoft Store.
    Would including the inbox apps from the 24H2 Inbox App ISO resolve this issue? If so, is it worth the effort, or can I assume that users' apps will update and localize automatically via the Store?

    * the registry stuff added to W10MUI.cmd


    Code:
    echo ============================================================
    echo REG - Preventing Setup from Removing Language Packs - Index %_i%/%imgcount%
    echo ============================================================
    REG LOAD HKLM\WLPHIV %INSTALLMOUNTDIR%\Windows\System32\Config\Software
    REG ADD "HKLM\WLPHIV\Policies\Microsoft\Control Panel\International" /v BlockCleanupOfUnusedPreinstalledLangPacks /t REG_DWORD /d 1 /f
    REG ADD "HKLM\WLPHIV\Microsoft\Windows\CurrentVersion\Policies\TextInput" /v AllowLanguageFeaturesUninstall /t REG_DWORD /d 0 /f
    REG UNLOAD HKLM\WLPHIV
     
  6. tcntad

    tcntad MDL Guru

    Oct 26, 2009
    4,632
    1,650
    150
    I see you borrowed my lines :p
    have you integrated LP's and the rest of the files to the setup?
    i have the "issue" that I have to actually set language I wanna use and logout/in then it works for Store apps (slight possible update may be needed)

    I dont get the "The language selection screen in OOBE doesn’t appear until after running Sysprep." part, the language should be available at initial start of setup if you did everything right
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  7. VinceCloud

    VinceCloud MDL Novice

    Aug 21, 2024
    5
    0
    0

    Hey, I'll post my directory structure and its contents shortly (see imgur). As far as I know, I followed all the steps correctly—except for the update step.

    Regarding the missing language selection in the OOBE: I do get the option to choose a language during installation (setup). However, I want the ability to change the language from the OOBE itself, as shown in these images:

    imgur .com/a/CZvAP1M (remove the space i dont have enough posts yet to post links)

    This feature only appears after I run Sysprep—it doesn’t show up by default, no matter which language I select during setup. I also didn’t define a default language in W10MUI, and I’m wondering if that might be related.
     
  8. VinceCloud

    VinceCloud MDL Novice

    Aug 21, 2024
    5
    0
    0
    Hey, I created another ISO with the registry changes I mentioned earlier. I also downloaded the 24H2 inbox apps and tried adding them right after applying updates—before unmounting the install.wim. However, as far as I can tell, it's not working. The packages appear to be added during the process, but none of the apps are visible in Windows, and their localization seems off (still english when installed in dutch till i update the apps from the store)


    Code:
    echo ============================================================
    echo == Update Inbox Apps for Multi Language - index %_i%/%imgcount% ==
    echo ============================================================
    echo == Set Inbox App Package Content Stores ==
    set "AppsContent=D:\packages\"
    
    echo == Update installed Inbox Store Apps using DISM ==
    echo.
    for %%F in ("%AppsContent%\*.appx*") do (
        REM Construct the APPX file name
        set "appxFile=%%F"
        REM Get the base file name for matching XML license file
        set "baseName=%%~nF"
        REM Build the full path for the corresponding XML file
        set "xmlFile=%AppsContent%!baseName!.xml"
        
        echo Handling !baseName!
        if exist "!xmlFile!" (
            echo   License file found. Applying package with license...
            !_dism2!:"!TMPDISM!" /Image:"%INSTALLMOUNTDIR%" /Add-ProvisionedAppxPackage /PackagePath:"!appxFile!" /LicensePath:"!xmlFile!"
        ) else (
            echo   License file not found. Applying package with skip license...
            !_dism2!:"!TMPDISM!" /Image:"%INSTALLMOUNTDIR%" /Add-ProvisionedAppxPackage /PackagePath:"!appxFile!" /SkipLicense
        )
    )
    Also, I still had to run Sysprep to get the language selection screen to show up during OOBE.
     
  9. tcntad

    tcntad MDL Guru

    Oct 26, 2009
    4,632
    1,650
    150
    Why its only showing up after sysprep I dont know but it looks like its not integrated to Boot.wim. Also you need to integrate win updates, especially LCU/SSU, is it those?

    I would try with a diff. ISO also

     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  10. VinceCloud

    VinceCloud MDL Novice

    Aug 21, 2024
    5
    0
    0

    hey I doubt its the ISO I literally followed the steps to make a 26100.1 iso by selecting the latest stable build and excluding updates
    downloaded the updates using WHDownloader which is indeed different then you did so i can try getting the updates from the hotfix post u mentioned in ur video (tried WHDownloader mainly cuz i got an error with DISM and i wasnt sure if it was related to the updates but ended up being the ADK in the end.

    besides i think i know why adding the inbox apps the way i did above didnt end up working cuz i didnt specify a region which is neccessary and when i've done that i shouldnt check in audit mode like ive been doing but make an account like the documentation says here:
    Starting with Windows 10, version 1803, apps can be preinstalled without being pinned to the Start Menu when you use DISM /add-provisionedappxpackage with the /region option. When you preinstall an app, you can choose to leave the app out of your LayoutModification.xml and the app will successfully install without appearing as a Start Menu tile. When a list of regions is NOT specified, the app will be provisioned only if it is pinned to start layout.