The command to run FetchUpdates.ps1 via -File doesn't work correctly for me when the scripts are located in Tools\%HostArchitecture%—the update list isn't generated correctly, and instead of the LCU KB5121767 found, KB5043080 starts downloading. A working solution is to run it via -Command with the correct -ScriptDir: Code: PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& '%~dp0Tools\%HostArchitecture%\FetchUpdates.ps1' -Mount '%MountDir%' -ScriptDir '%~dp0Tools\%HostArchitecture%' -OutDir '%~dp0UUP' -DismPath '%DISM11%' -ScratchDir '%~dp0UUP\Scratch' -NoIntegrate" With this option, FetchUpdates.ps1 correctly detects Windows 11 24H2, finds LCU KB5121767 (26100.8894), and downloads windows11.0-kb5121767-x64.msu. Code: echo. echo ------------------------------------------------------------ echo Auto-detecting build + downloading updates echo ------------------------------------------------------------ echo. powershell -NoProfile -ExecutionPolicy Bypass -Command "& '%~dp0Tools\%HostArchitecture%\FetchUpdates.ps1' -Mount '%MountDir%' -ScriptDir '%~dp0Tools\%HostArchitecture%' -OutDir '%~dp0UUP' -DismPath '%DISM11%' -ScratchDir '%~dp0UUP\Scratch' -NoIntegrate" if errorlevel 1 ( echo. echo ------------------------------------------------------------ echo ERROR: Update download failed. echo ------------------------------------------------------------ echo. pause goto End ) echo. echo ------------------------------------------------------------ echo Running W10UI.cmd Integrating Updates to image echo ------------------------------------------------------------ echo. CALL "%~dp0W10UI.cmd" Log Code: ------------------------------------------------------------ Auto-detecting build + downloading updates ------------------------------------------------------------ [*] Detected: build 26100, type Client => SourceOS w11, Arch x64 Build: 26100 => Windows 11 Version 24H2 (x64) [Source: w11, Type: Client] [1/4] Searching: Servicing Stack Update (SSU)... WARN: No separate SSU found (may be combined with LCU) [2/4] Searching: Cumulative Update (LCU)... 2026-07 Cumulative Update for Windows 11, version 24H2 for x64-based Systems (KB5121767) (26100.8894) [3/4] Searching: .NET Framework Update... 2026-08 Cumulative Update for .NET Framework 3.5 and 4.8.1 for Windows 11, version 24H2 for x64 (KB5120710) [4/4] Searching: Dynamic Update (SafeOS)... 2026-08 Safe OS Dynamic Update for Windows 11, version 24H2 for x64-based Systems (KB5121002) OK: Generated update list with 3 update(s) => D:\Win\2xH2_Integrator_with_W10UI\UUP\all.txt [*] Removing stale update files (old versions)... (none) downloading [LCU]: windows11.0-kb5121767-x64.msu ############################################################# 55.3%
I ran an experiment with Windows 11 Business editions 24H2 and again there was no compatibility. Maybe I'm doing something wrong? Code: Mounting image with index 1 Name : Windows 11 Pro Architecture: x64 Deployment Image Servicing and Management tool Version: 10.0.28000.2149 Mounting image [==========================100.0%==========================] The operation completed successfully. [OK] install.wim mounted successfully. ------------------------------------------------------------ Auto-detecting build + downloading updates ------------------------------------------------------------ [*] Detected: build 26100, type Client => SourceOS w11, Arch x64 Build: 26100 => Windows 11 Version 24H2 (x64) [Source: w11, Type: Client] [1/4] Searching: Servicing Stack Update (SSU)... WARN: No separate SSU found (may be combined with LCU) [2/4] Searching: Cumulative Update (LCU)... 2026-07 Cumulative Update for Windows 11, version 24H2 for x64-based Systems (KB5121767) (26100.8894) [3/4] Searching: .NET Framework Update... 2026-08 Cumulative Update for .NET Framework 3.5 and 4.8.1 for Windows 11, version 24H2 for x64 (KB5120710) [4/4] Searching: Dynamic Update (SafeOS)... 2026-08 Safe OS Dynamic Update for Windows 11, version 24H2 for x64-based Systems (KB5121002) OK: Generated update list with 3 update(s) => D:\Win\2xH2_Integrator_with_W10UI\UUP\all.txt [*] Removing stale update files (old versions)... remove old: windows11.0-kb5121767-x64.msu downloading [LCU]: windows11.0-kb5043080-x64.msu ################################################################################################################ 100.0% up-to-date: windows11.0-kb5120710-x64-ndp481.msu up-to-date: windows11.0-kb5121002-x64.cab [*] Download: got 1, up-to-date 2, failed 0, stale removed 1 ------------------------------------------------------------ Running W10UI.cmd Integrating Updates to image ------------------------------------------------------------ ============================================================ Running W10UI v10.62 ============================================================ ============================================================ Configured Options... ============================================================ Net35 Net35Source LCUmsuExpand 1 Cleanup AutoStart UseWimlib DismRoot ============================================================ Extracting dpx.dll file... ============================================================ ============================================================ Extracting .cab files from .msu files... ============================================================ 1/2: windows11.0-kb5043080-x64.msu [Combined UUP]
I've encountered similar issues when trying to automate update downloads, as the script often defaults to the older version (KB5043080) instead of the latest one. I tried several workarounds, but unfortunately, none were fully successful with the current setup. One potential approach, if you're interested, is to manually filter out KB5043080 within the PowerShell script. By explicitly excluding that specific KB, you might be able to force the script to ignore the legacy version and prioritize the newer LCU. Alternatively, you could manually place the required update file into the target folder and modify the script to look for that directory path. Let me know if you’d like to explore how to implement that filtering logic
Could you please give it a try? I’ve made some additions to my old file; logically, if you place L1_KB5043080 statically in the folder, it will be excluded from the scan. L2 finds the most recent version and writes it to a .txt file—I haven’t tested it yet, but I will. - test: The result isn't very successful—it finds the old version from a month ago—but it can be improved; we need to work on it.
Code: ------------------------------------------------------------ Auto-detecting build + downloading updates ------------------------------------------------------------ [*] Detected: build 26100, type Client => SourceOS w11, Arch x64 D:\Win\2xH2_Integrator_with_W10UI\Tools\amd64\GenerateUpdateList.ps1 : Не удается найти параметр, соответствующий имени параметра "SourceOS". + CategoryInfo : InvalidArgument: (:) [GenerateUpdateList.ps1], ParentContainsErrorRecordException + FullyQualifiedErrorId : NamedParameterNotFound,GenerateUpdateList.ps1 [WARN] No all.txt (no updates / no internet). ------------------------------------------------------------ Running W10UI.cmd Integrating Updates to image ------------------------------------------------------------
That's why, personally, I don't bother with all this mutating, but simply manually place the updates I need into the target folder. Since I'm experimenting with images from 24H2 to 26H2, automatically generating updates with such a wide selection of editions causes certain problems. This way, everything is simple and reliable: just drop the updates you need into the target folder and don't have to worry about it, and there are no problems at all. Well, of course, this is how it is: everyone does what they think is right... IMHO
I'm currently testing the ability to automatically update the image correctly. I'll report the results.
It was due to a parameter name mismatch when the script was called. The fact that all.txt wasn't created (“No all.txt”) was also a direct result of this error, because the script crashed right from the start due to the parameter error and never ran at all. --- The $SourceOS and $Type parameters have been added (optional, not required). Your wrapper tool sends these, but the script’s logic already determines $OSName from its own mapping based on $Build, so even if it doesn’t use these values, it will now accept them and ignore them.
I'm at work now, so I can test it after work. I really like this approach. I'll be home by 2:00 PM. Thank you very much.
Hello, what do you think: will it give me anything if I add these functions here? Code: # ============================================================ # Build number => Windows version mapping # ============================================================ # Windows 10 builds $versionMapWin10 = @{ "19041" = "2004" "19042" = "20H2" "19043" = "21H1" "19044" = "21H2" "19045" = "22H2" } # Windows 11 builds $versionMapWin11 = @{ "22000" = "21H2" "22621" = "22H2" "22631" = "23H2" "26100" = "24H2" "26120" = "24H2" "26200" = "25H2" - added function "28000" = "26H1" "26300" = "26H2" - added function }
Yes, it works—and it actually aligns with an important technical reality. In fact, I recommend adding it; I combined these and came up with something like this. 24H2 will only work under L1 and L2 conditions; the others remain normal, meaning: the build mapping (26200/26300) stays in place, so the script now recognizes these builds and runs them in the normal flow with the ;LCU tag—but the fixed KB5043080 logic for L1/L2 is triggered only for 24H2.
@sergey130270 I tried it four times, and the result was always the same—it shows the correct value. But it’s also possible that the script is using an older version. Check and delete the old .txt file. CMD screen: Code: GenerateUpdateList.ps1 - script build 2026-08-17-r7 (title-date sort fix) NOT: 24H2 tespit edildi. L1 (KB5043080) satiri sabit URL ile otomatik eklendi. KB5043080, LCU aramasindan otomatik olarak dislanacak. [1/3] Searching: Cumulative Update (LCU + Preview)... [debug] isW1124H2=True ExcludeKB=5043080 candidates-before-filter=43 [debug] 2026-08-01 | KB5121003 | 2026-08 Cumulative Update for Windows 11, version 24H2 for x64-based Systems (KB5121003) (26100.9168) [debug] 2026-08-01 | KB5121002 | 2026-08 Safe OS Dynamic Update for Windows 11, version 24H2 for x64-based Systems (KB5121002) [debug] 2026-07-01 | KB5101719 | 2026-07 Safe OS Dynamic Update for Windows 11, version 24H2 for x64-based Systems (KB5101719) [debug] 2026-07-01 | KB5106056 | 2026-07 Setup Dynamic Update for Windows 11, version 24H2 for x64-based Systems (KB5106056) [debug] 2026-07-01 | KB5101650 | 2026-07 Cumulative Update for Windows 11, version 24H2 for x64-based Systems (KB5101650) (26100.8875) 2026-08 Cumulative Update for Windows 11, version 24H2 for x64-based Systems (KB5121003) (26100.9168) Date: 2026-08-01 [2/3] Searching: .NET Framework Update... 2026-08 Cumulative Update for .NET Framework 3.5 and 4.8.1 for Windows 11, version 24H2 for x64 (KB5120710) Date: 2026-08-01 [3/3] Searching: Dynamic Update (SafeOS)... 2026-08 Safe OS Dynamic Update for Windows 11, version 24H2 for x64-based Systems (KB5121002) Date: 2026-08-01 OK: Generated update list with 3 update(s) => D:\ISOEdit\2xH2_Creator_17.2\DATA\UUP\test_all.txt C:\Windows\System32>