[GUIDE] [DISCUSSION] Windows Editions Reconstructions

Discussion in 'Windows 10' started by TesterMachineOS, Sep 3, 2024.

  1. xinso

    xinso MDL Guru

    Mar 5, 2009
    15,329
    15,464
    340
    #4841 xinso, May 2, 2026
    Last edited: Oct 7, 2026
    [29580.1000 Windows 11 Enterprise (OEM_COA_NSLP with Edge with Store in Official style) arm64 en-US]
    Code:
    ------------------------------------------------------------
    Add en-US Client Language
    ------------------------------------------------------------
    
    Deployment Image Servicing and Management tool
    Version: 10.0.19041.844
    
    Image Version: 10.0.29580.1000
    
    Processing 1 of 1 - Adding package Microsoft-Windows-Client-LanguagePack-Package~31bf3856ad364e35~arm64~en-US~10.0.29580.1000
    [==========================100.0%==========================]
    The operation completed successfully.
    
    Code:
    ------------------------------------------------------------
    Set Enterprise Key
    ------------------------------------------------------------
    
    Deployment Image Servicing and Management tool
    Version: 10.0.19041.844
    
    Image Version: 10.0.29580.1000
    
    Starting to install product key...
    Finished installing product key.
    
    The operation completed successfully.
    
    ============================================================
    Current Edition : Enterprise (OEM_COA_NSLP)
    ============================================================
    
     
  2. DichVAN

    DichVAN MDL Junior Member

    Jun 18, 2021
    77
    107
    0
    All knowledge is provided by ChatGPT.
    Distinguishing the 3 key concepts (very important)
    1. Construction (true build)
    Build from original packages (UUP / component)
    Do not use a complete ISO
    Choose:
    Necessary package
    Necessary dependency
    Assemble into a complete OS
    Do not rely on a pre-existing image
    Control dependency from the start
    ✔ Truly clean
    ✔ No orphans
    ✔ No broken chain
    ➡️ Essentially:
    Build Windows from “raw components”. “Creating Windows from scratch” (zero-base)
    2. Reconstruction (correct definition)
    Reconstruction (rebuild)
    Standard reconstruction is NOT:
    ❌ Deleting files randomly
    ❌ Disabling services randomly
    Correct reconstruction is:
    Rebuilding Windows from an existing image
    Taking the base:
    Windows Pro / Enterprise / LTSC
    Then:
    Extract → deep editing → rebuild the image
    Rebuild Windows from a package:
    Using DISM / CBS stack
    Removing packages with dependency control
    Re-generating:
    Component Store (WinSxS logic)
    Service registry by package
    Repacking components
    Changing the image structure
    Injecting / rebuilding the package layer
    That is:
    It still retains a valid architecture (valid dependency graph). Re-assembly from a complete Windows installation
    Key points:
    Reconstruction ≠ “random cutting”
    Reconstruction = “removing + logical rebuild”
    3. Windows Mod (Lite / Tiny11 / Ghost Spectre / X-Lite…)
    Windows mod (post-build modification)
    Base: Mod from available ISOs, usually Pro (or Home/Enterprise depending on the version)
    Using tools:
    DISM
    MSMG Toolkit
    NTLite
    What they do:
    Remove (i.e. debloat) apps (UWP, Edge, OneDrive…)
    Disable services
    Tweak registry
    Pre-config system
    ➡️ Nature:
    “Original Windows + cut/modified”
    ❌ Does not fully rebuild dependencies
    ❌ Does not sync with CBS
    Consequences:
    Orphan service
    Dead dependency
    Broken API path
    In short:
    Windows Mod: modification
    Reconstruction: Restructuring from the existing
    Construction: Building from scratch

    And:
    Only Construction can reduce the “original complexity of Windows”
    This statement is at a truly "deep level" — because both standard Construction and Reconstruction are technically correct, yet there are still clear differences.

    I'll get straight to the point: it's not about "doing it right or wrong," but about the timing of intervention in the system.

    First Conclusion (for quick understanding)
    Construction is lighter than Reconstruction
    because:
    Construction is optimized from the moment the system graph is built.
    Reconstruction can only remove and rebuild within the limits of what already exists.

    That is:
    Construction = optimized from the architectural foundation.
    Reconstruction = optimized within the existing architectural framework.
    ⚙️ 1. Component Graph (CBS / WinSxS)
    Construction
    When building:
    Only include necessary packages.
    Dependency graph is created from the beginning.
    Result:
    WinSxS is smaller.
    No redundant “optional branches”.
    Reconstruction
    Initially:
    Full Windows has many packages + dependency chains.
    When removing:
    CBS only removes what is “allowed”.
    Some dependencies are retained to ensure consistency.
    Result:
    WinSxS still has:
    redundant metadata.
    component stubs.
    Key Point In short:
    Reconstruction cannot make WinSxS "pure" as if it never existed.
    2. Servicing Stack (TrustedInstaller / CBS Engine)
    Construction
    Servicing stack:
    ✔ No history tracking
    ✔ No "old state"
    No:
    pending operation
    superseded package
    Reconstruction
    CBS must retain:
    install state
    uninstall capability
    version tracking
    Even after removing:
    still remains:
    registry CBS entries
    servicing metadata
    Consequences:
    Increased:
    disk usage (slight but persistent)
    CPU during servicing check
    3. Registry Architecture
    Construction
    Registry is:
    built "fresh"
    no redundant keys
    Does not exist:
    orphan CLSID
    unused COM registration
    dead service config
    Reconstruction
    Registry:
    is "cleaned up" from The system already exists.
    Even with thorough cleaning:
    There are still:
    hidden references
    unused GUIDs
    COM leftovers
    This causes:
    Longer lookup times (very small but cumulative)
    Slightly increased memory footprint
    ⚡ 4. File System & Image Layout
    Construction
    WIM:
    Optimized rebuild
    layout file with “contiguous logic”
    After applying:
    Less fragmentation logic
    Less unused files
    Reconstruction
    Remove file:
    but not completely rebuild the layout
    Result:
    Still has:
    empty placeholders
    redundant catalogs
    5. Runtime Behavior (most important)
    Construction
    When booting:
    ✔ Only load what is necessary
    ✔ Do not check “existence”
    Execution path:
    Shorter
    Fewer branches
    Reconstruction
    Runtime still has to:
    check component existence
    handle optional features
    Because:
    Windows is designed to:
    “have that component”
    This is the key takeaway:
    Reconstruction still has a “full Windows mindset”
    Construction never has that mindset from the start
    6. Why is the difference not too big but still exists?
    Because:
    Reconstruction:
    is already very optimized (if done correctly)
    But:
    it is still limited by:
    CBS rules
    backward compatibility
    servicing logic
    The MOST ACCURATE conclusion:
    Construction is lighter than Reconstruction not because it is done “better”
    but because:
    Construction has the right to “never create something unnecessary”
    Reconstruction only has the right to “delete within permitted limits”
    Easy-to-understand example:
    Construction:
    Build a house with only 3 rooms from the start
    Reconstruction:
    Build a 10-room house → demolish it to 3 Room
    → Still has:
    Old foundation
    Excess electrical wiring
    Excess load-bearing structure
    ⚠️ A very important insight
    Standard reconstruction can achieve 90–95% of the lightness of construction
    but:
    ❗ it will never reach 100%
     
  3. xinso

    xinso MDL Guru

    Mar 5, 2009
    15,329
    15,464
    340
    #4843 xinso, May 3, 2026
    Last edited: Oct 7, 2026
    Code:
    ------------------------------------------------------------
    Set IoTEnterpriseS Key
    ------------------------------------------------------------
    
    Deployment Image Servicing and Management tool
    Version: 10.0.19041.844
    
    Image Version: 10.0.26100.1
    
    Starting to install product key...
    Finished installing product key.
    
    The operation completed successfully.
    
    ============================================================
    Current Edition : IoTEnterpriseS (OEM_COA_NSLP)
    ============================================================
    
     
  4. winosr25

    winosr25 MDL Addicted

    May 14, 2024
    543
    675
    30
    #4844 winosr25, May 4, 2026
    Last edited: May 4, 2026
    Code to prepare WinPE for construction
    This gives you a coreos.wim for construction


    22000.1
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <unattend xmlns="urn:schemas-microsoft-com:unattend">
        <servicing>
            <package action="install">
                <assemblyIdentity name="Microsoft-Windows-ServicingStack-Base-Package" version="10.0.22000.1" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" />
        <source location="Microsoft-Windows-ServicingStack-Base-Package~31bf3856ad364e35~amd64~~10.0.22000.1.mum" />
            </package>
            <package action="install">
                <assemblyIdentity name="Microsoft-OneCore-CoreSystem-Core-merged-Package" version="10.0.22000.1" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" />
        <source location="Microsoft-OneCore-CoreSystem-Core-merged-Package~31bf3856ad364e35~amd64~~10.0.22000.1.mum" />
            </package>
            <package action="install">
                <assemblyIdentity name="Microsoft-Windows-Foundation-Group-Package" version="10.0.22000.1" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" />
        <source location="Microsoft-Windows-Foundation-Group-Package~31bf3856ad364e35~amd64~~10.0.22000.1.mum" />
            </package>
            <package action="install">
                <assemblyIdentity name="Microsoft-Windows-Servicing-Core-Package" version="10.0.22000.1" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" />
        <source location="Microsoft-Windows-Servicing-Core-Package~31bf3856ad364e35~amd64~~10.0.22000.1.mum" />
            </package>
            <package action="remove">
                <assemblyIdentity name="Microsoft-Windows-WinPE-Package" version="10.0.22000.1" processorArchitecture="amd64" language="neutral" buildType="release" publicKeyToken="31bf3856ad364e35" />
            </package>
        </servicing>
    </unattend>
    26100.1
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <unattend xmlns="urn:schemas-microsoft-com:unattend">
        <servicing>
            <package action="install">
                <assemblyIdentity name="Microsoft-Windows-ServicingStack-Base-Package" version="10.0.26100.1" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" />
        <source location="Microsoft-Windows-ServicingStack-Base-Package~31bf3856ad364e35~amd64~~10.0.26100.1.mum" />
            </package>
            <package action="install">
                <assemblyIdentity name="Microsoft-OneCore-CoreSystem-Core-merged-Package" version="10.0.26100.1" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" />
        <source location="Microsoft-OneCore-CoreSystem-Core-merged-Package~31bf3856ad364e35~amd64~~10.0.26100.1.mum" />
            </package>
            <package action="install">
                <assemblyIdentity name="Microsoft-Windows-Foundation-Group-Package" version="10.0.26100.1" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" />
        <source location="Microsoft-Windows-Foundation-Group-Package~31bf3856ad364e35~amd64~~10.0.26100.1.mum" />
            </package>
            <package action="install">
                <assemblyIdentity name="Microsoft-Windows-Servicing-Core-Package" version="10.0.26100.1" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" />
        <source location="Microsoft-Windows-Servicing-Core-Package~31bf3856ad364e35~amd64~~10.0.26100.1.mum" />
            </package>
            <package action="remove">
                <assemblyIdentity name="Microsoft-Windows-WinPE-Package" version="10.0.26100.1" processorArchitecture="amd64" language="neutral" buildType="release" publicKeyToken="31bf3856ad364e35" />
            </package>
        </servicing>
    </unattend>
    28000.1 error during conversion but no problem
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <unattend xmlns="urn:schemas-microsoft-com:unattend">
        <servicing>
            <package action="install">
                <assemblyIdentity name="Microsoft-Windows-ServicingStack-Base-Package" version="10.0.28000.1" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" />
        <source location="Microsoft-Windows-ServicingStack-Base-Package~31bf3856ad364e35~amd64~~10.0.28000.1.mum" />
            </package>
            <package action="install">
                <assemblyIdentity name="Microsoft-Win2-Feature" version="10.0.28000.1" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" />
        <source location="Microsoft-Win2-Feature~31bf3856ad364e35~amd64~~10.0.28000.1.mum" />
            </package>
            <package action="install">
                <assemblyIdentity name="Microsoft-Windows-Servicing-Core-Package" version="10.0.28000.1" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" />
        <source location="Microsoft-Windows-Servicing-Core-Package~31bf3856ad364e35~amd64~~10.0.28000.1.mum" />
            </package>
            <package action="remove">
                <assemblyIdentity name="Microsoft-Windows-WinPE-Package" version="10.0.28000.1" processorArchitecture="amd64" language="neutral" buildType="release" publicKeyToken="31bf3856ad364e35" />
            </package>
        </servicing>
    </unattend>
    script ex 22000.1
    Code:
    @echo off
    pushd "%~dp0"
    
    
    mkdir mount
    set MT=mount
    mkdir update
    set ua=update
    
    echo.
    echo ============================================================
    echo Mount image
    echo ============================================================
    echo.
    dism /mount-wim /wimfile:winpe.wim /index:1 /mountdir:%MT%
    
    dism /image:%MT% /apply-unattend:sxs\22000.1.xml
    
    dism /english /image:%MT% /cleanup-image /startcomponentcleanup /resetbase
    
    Reg load HKLM\SOFTHIVE %MT%\Windows\System32\config\SOFTWARE
    Reg load HKLM\SYSHIVE %MT%\Windows\System32\config\SYSTEM
    Reg load HKLM\COMPONHIVE %MT%\Windows\System32\config\COMPONENTS
    reg import winpe.reg
    Reg unload HKLM\SOFTHIVE
    Reg unload HKLM\SYSHIVE
    Reg unload HKLM\COMPONHIVE
    
    dism /english /unmount-wim /mountdir:%MT% /commit
    dism /english /export-image /sourceimagefile:winpe.wim /sourceindex:1 /destinationimagefile:coreos.wim /Compress:max /CheckIntegrity
    
    echo.
    pause
    exit
     

    Attached Files:

  5. pp03

    pp03 MDL Guru

    Apr 12, 2014
    2,020
    858
    90
    #4845 pp03, May 4, 2026
    Last edited: May 4, 2026
    thank you :) 22000.1 coreos.wim prepared. let's test it for construction

    edit: error 161
     
  6. winosr25

    winosr25 MDL Addicted

    May 14, 2024
    543
    675
    30
  7. winosr25

    winosr25 MDL Addicted

    May 14, 2024
    543
    675
    30

    Attached Files:

  8. DichVAN

    DichVAN MDL Junior Member

    Jun 18, 2021
    77
    107
    0
    if you said that your script for construction, why:
    1. WinPE ?, true construction have not WinPE base.
    2. All code have
    <package action="remove">
    <assemblyIdentity name="Microsoft-Windows-WinPE-Package" version="10.0.xxxx.yyyy" processorArchitecture="amd64" language="neutral" buildType="release" publicKeyToken="31bf3856ad364e35" />
    </package>

    true construction does not remove WinPE-Package.

    For me, your script is Reconstruction for specifically edition from WinPE base.
     
  9. xinso

    xinso MDL Guru

    Mar 5, 2009
    15,329
    15,464
    340
    #4850 xinso, May 5, 2026
    Last edited: Oct 7, 2026
    [Test Windows 11 IoT Enterprise (OEM_DM without Edge without Store in Official style) amd64 en-US with winosr25's coreos-28000.1.wim]
    Code:
    ------------------------------------------------------------
    Set IoTEnterprise Key
    ------------------------------------------------------------
    
    Deployment Image Servicing and Management tool
    Version: 10.0.19041.844
    
    Image Version: 10.0.28000.1
    
    Starting to install product key...
    Finished installing product key.
    
    The operation completed successfully.
    
    ============================================================
    Current Edition : IoTEnterprise (OEM_DM)
    ============================================================
    
     
  10. winosr25

    winosr25 MDL Addicted

    May 14, 2024
    543
    675
    30
    I'm going to redo my cores and test them, then I'll share them again.
     
  11. pp03

    pp03 MDL Guru

    Apr 12, 2014
    2,020
    858
    90
  12. pp03

    pp03 MDL Guru

    Apr 12, 2014
    2,020
    858
    90
    i agree
     
  13. winosr25

    winosr25 MDL Addicted

    May 14, 2024
    543
    675
    30
    #4854 winosr25, May 5, 2026
    Last edited: May 5, 2026
    Create a base for building from WinPE
     
  14. Ace2

    Ace2 MDL Guru

    Oct 10, 2014
    2,264
    1,985
    90
    how-to please...
     
  15. pp03

    pp03 MDL Guru

    Apr 12, 2014
    2,020
    858
    90
    #4856 pp03, May 5, 2026
    Last edited: May 5, 2026
    i can't start conversation with you, please enable priv
     
  16. pp03

    pp03 MDL Guru

    Apr 12, 2014
    2,020
    858
    90
  17. Ace2

    Ace2 MDL Guru

    Oct 10, 2014
    2,264
    1,985
    90
    Post how-to in thread for everyone...
     
  18. pp03

    pp03 MDL Guru

    Apr 12, 2014
    2,020
    858
    90
    basically based on stagesxs