Slimdown11 – turn Windows 11 or LTSC 2024 into classic/legacy Windows

Discussion in 'Windows 11' started by SunLion, Mar 2, 2025.

  1. sergey130270

    sergey130270 MDL Senior Member

    May 15, 2014
    350
    558
    10
    #2121 sergey130270, Aug 16, 2026
    Last edited: Aug 16, 2026
    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%
    
     
  2. sergey130270

    sergey130270 MDL Senior Member

    May 15, 2014
    350
    558
    10
    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]
    
     
  3. sainfo

    sainfo MDL Addicted

    Dec 6, 2021
    707
    1,590
    30
    And what about the version: Version: 10.0.28000.2149. What's incompatible with what? 26H1 with 24H2?
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  4. otvertka

    otvertka MDL Member

    Aug 13, 2009
    109
    253
    10


    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
     
  5. otvertka

    otvertka MDL Member

    Aug 13, 2009
    109
    253
    10
    #2125 otvertka, Aug 16, 2026
    Last edited: Aug 16, 2026
    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.
     

    Attached Files:

  6. sergey130270

    sergey130270 MDL Senior Member

    May 15, 2014
    350
    558
    10
    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
    ------------------------------------------------------------
    
     
  7. sainfo

    sainfo MDL Addicted

    Dec 6, 2021
    707
    1,590
    30
    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
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  8. sergey130270

    sergey130270 MDL Senior Member

    May 15, 2014
    350
    558
    10
    I'll probably use manual mode too.
     
  9. sainfo

    sainfo MDL Addicted

    Dec 6, 2021
    707
    1,590
    30
    I'm currently testing the ability to automatically update the image correctly. I'll report the results.
    :thinking:
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  10. otvertka

    otvertka MDL Member

    Aug 13, 2009
    109
    253
    10
    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.
     

    Attached Files:

  11. sergey130270

    sergey130270 MDL Senior Member

    May 15, 2014
    350
    558
    10
    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.
     
  12. sainfo

    sainfo MDL Addicted

    Dec 6, 2021
    707
    1,590
    30
    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
    }
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  13. otvertka

    otvertka MDL Member

    Aug 13, 2009
    109
    253
    10
    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.
     

    Attached Files:

  14. otvertka

    otvertka MDL Member

    Aug 13, 2009
    109
    253
    10
  15. otvertka

    otvertka MDL Member

    Aug 13, 2009
    109
    253
    10
  16. otvertka

    otvertka MDL Member

    Aug 13, 2009
    109
    253
    10
    @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>
     
  17. otvertka

    otvertka MDL Member

    Aug 13, 2009
    109
    253
    10

    Attached Files: