Windows Editions Reconstruction Project

Discussion in 'Windows 10' started by whatever127, Jan 10, 2020.

  1. Yarrak31

    Yarrak31 MDL Senior Member

    Feb 28, 2024
    385
    98
    10
    @zwl29107 where are you, what is the situation, would you share a new lcu or script?
     
  2. Yarrak31

    Yarrak31 MDL Senior Member

    Feb 28, 2024
    385
    98
    10
    The install.wim size is too large, around 6 GB, how can I reduce it? @xinso
     
  3. xinso

    xinso MDL Guru

    Mar 5, 2009
    13,123
    13,997
    340
    #16703 xinso, Jun 29, 2024 at 11:42
    Last edited: Jun 29, 2024 at 11:52
    Compress wim to esd, because 25398.1 "Resetbase" can not completely clean up updated components.
     
  4. Yarrak31

    Yarrak31 MDL Senior Member

    Feb 28, 2024
    385
    98
    10
    With which tool or dism command?
     
  5. haris_mdlf69

    haris_mdlf69 MDL Senior Member

    Oct 23, 2018
    482
    775
    10
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  6. Yarrak31

    Yarrak31 MDL Senior Member

    Feb 28, 2024
    385
    98
    10
    When I first joined this forum, I didn't know anything. I only entered with basic information. Thanks to you, I can create most ltsc versions.
    Thanks for
    @xinso
    @haris_mdlf69 and other friends
     
  7. xinso

    xinso MDL Guru

    Mar 5, 2009
    13,123
    13,997
    340
  8. kibkalo

    kibkalo MDL Addicted

    Sep 8, 2009
    686
    260
    30
    #16708 kibkalo, Jun 29, 2024 at 15:16
    Last edited: Jun 29, 2024 at 16:24
    Master xinso, have a question about 19041 Enterprise G.
    Wanted to install it on a VM. Got your old script enterpriseg_19041_x64 - and successfully created install.wim and ISO.
    Everything works fine. Updates are installed fine too.
    But if I tried installing updates (19045.4598) to install.wim with W10UI, I get an error during installation from updated image: "Windows could not set the offline locale information 0x807c0000" - on last minutes of installation.
    Can you guide me please, what to change in WIM file?
     
  9. liliactr

    liliactr MDL Member

    Sep 3, 2009
    247
    94
    10
    If you learned well can you teach us too :)

    I have read every 836 page but i have no idea what is going in here. Just dism successfull logs. Nobody shares what commands or batches he used or a how to guide
     
  10. Yarrak31

    Yarrak31 MDL Senior Member

    Feb 28, 2024
    385
    98
    10
    Of course, which version do you want?
     
  11. liliactr

    liliactr MDL Member

    Sep 3, 2009
    247
    94
    10
    Does not matter. Birader. Windows 11 Enterprise N LTSC maybe
     
  12. Sum_Ting_Wong

    Sum_Ting_Wong MDL Member

    Jan 30, 2024
    129
    193
    10
    #16713 Sum_Ting_Wong, Jun 29, 2024 at 16:24
    Last edited: Jun 29, 2024 at 16:36
    Probably the latest vc or .net 7/8, not sure. The official release doesn't come with all those .dll files which might bypass the need for some dependency. Or I just don't understand it all yet. Didn't get to porting my workstation yet. That's today's plan again.


    I was reading about applying product policy from GN to G, as GN's policy is less restrictive to a degree. The post was talking about using a GN license file, too, to keep SPP happy; I think. This allowed updates. Of course it would be nice to just have a GN updater that made windows apply most updates for G to GN, or used EnterpriseS/SN if that didn't work out. Perhaps...a way to trick GN to think it's a virtual edition and gets mapped to another.
     
  13. xinso

    xinso MDL Guru

    Mar 5, 2009
    13,123
    13,997
    340
  14. kibkalo

    kibkalo MDL Addicted

    Sep 8, 2009
    686
    260
    30
    I used English 19041.1 for reconstruction, - and it works perfectly.
    Problem appeared if I updated image with all updates via W10UI.
    I have tried few different images.
    Can be a problem with 19045.4598?
    List of updates, I use with W10UI is:
    Code:
    defender-dism-rc-x64.cab
    SSU-19041.4585-x64.cab
    windows10.0-kb5007401-x64.cab
    Windows10.0-KB5011048-x64-NDP481-Base.cab
    windows10.0-kb5015684-x64_Enablement.cab
    windows10.0-kb5020683-x64-OOBE.cab
    windows10.0-kb5026037-x64_OOBE_update.cab
    windows10.0-kb5032906-x64_DU-Sources.cab
    windows10.0-kb5034232-x64_DU-SafeOS.cab
    Windows10.0-KB5039299-x64_inout.cab
    windows10.0-kb5039299-x64_LCU-4598.cab
    Windows10.0-KB5039336-x64.cab
    windows10.0-kb5039865-x64-ndp481_9251.1.cab
    Once again - original 19041.1 works well, problem appears only if I integrate updates prior to installation.
    looking for your advice.
    Thanks!
     
  15. Sum_Ting_Wong

    Sum_Ting_Wong MDL Member

    Jan 30, 2024
    129
    193
    10
    #16716 Sum_Ting_Wong, Jun 29, 2024 at 19:46
    Last edited: Jun 30, 2024 at 21:44
    Updated the script in that post to properly handle the registry entry, a % was left out.

    But. Here is the full update. It should now be capable of detecting the presence of an update.mum file and asking if you want to use or ignore it. It will now also handle offline images, including mounting a specified file. Should an offline image be processed, it will ask if you wish to save, discard, or leave as-is the mounted image. Additional error handling included as well.

    Code:
    :: YourMUM.bat - Installer for .mum files, for online or offline images.
    :: Handles folders with and without update.mum, giving choice to only use or ignore update.mum.
    :: Handles the process of mounting, saving, discarding, or leaving as-is a mounted image
    
    @echo off
    
    :: Change to the directory of the batch file
    pushd "%~dp0"
    
    :: Request admin rights if not already running as admin
    >nul 2>&1 reg query "HKU\S-1-5-19\Environment"
    if '%errorlevel%' NEQ '0' (
        (echo.Set UAC = CreateObject^("Shell.Application"^)&echo.UAC.ShellExecute "%~s0", "", "", "runas", 1)>"%tmp%\getadmin.vbs"
        "%tmp%\getadmin.vbs"
        exit /B
    ) else ( >nul 2>&1 del "%tmp%\getadmin.vbs" )
    
    Title .mum installer
    color 0E
    setlocal enabledelayedexpansion
    
    :menu
    call :banner
    echo Please select an option:
    echo 1. Install .mum files from a directory
    echo 2. Add context menu for .mum files
    echo 3. Remove context menu for .mum files
    echo 4. Exit
    echo.
    set /p choice="Enter your choice: "
    
    if "%choice%"=="1" goto :option1
    if "%choice%"=="2" goto :option2
    if "%choice%"=="3" goto :option3
    if "%choice%"=="4" goto :exit
    
    echo Invalid choice. Please try again.
    timeout /t 3 /nobreak >nul
    goto :menu
    
    :option1
    call :chooseInstallationTarget
    goto :menu
    
    :option2
    call :banner
    reg add "HKEY_CLASSES_ROOT\SystemFileAssociations\.mum\shell\RunAs" /ve /d "Install with DISM" /f
    reg add "HKEY_CLASSES_ROOT\SystemFileAssociations\.mum\shell\RunAs" /v "HasLUAShield" /t REG_SZ /d "" /f
    reg add "HKEY_CLASSES_ROOT\SystemFileAssociations\.mum\shell\RunAs\command" /ve /d "cmd /k dism /online /add-package /packagepath:\"%%1\"" /f
    echo Context menu added for .mum files.
    timeout /t 3 /nobreak >nul
    goto :menu
    
    :option3
    call :banner
    reg delete "HKEY_CLASSES_ROOT\SystemFileAssociations\.mum\shell\RunAs" /f
    echo Context menu removed for .mum files.
    timeout /t 3 /nobreak >nul
    goto :menu
    
    :chooseInstallationTarget
    call :banner
    echo 1. Install .mums to the current installation
    echo 2. Install .mums to mounted image
    echo.
    set /p targetChoice="Enter your choice: "
    
    if "%targetChoice%"=="1" (
        call :chooseDirectory
    ) else if "%targetChoice%"=="2" (
        call :chooseMountedImage
    ) else (
        echo Invalid choice. Please try again.
        timeout /t 3 /nobreak >nul
        goto :chooseInstallationTarget
    )
    goto :menu
    
    :chooseMountedImage
    call :banner
    echo Select the mounted directory.
    echo Type "none" to select a .wim for use.
    set /p "mountdir= Location: "
    set mountdir=%mountdir: =%
    if "%mountdir%" == "none" call :mountwim
    :: In case the user uses double quotes
    if "%mountdir%" == ""none"" call :mountwim
    call :installMumFilesOffline "%mountdir%"
    goto :menu
    
    :mountwim
    :mountwim_start
    call :banner
    echo Enter the location of the .wim file to use...
    set /p "wimfile= Location: "
    if not exist "%wimfile%" (
        echo The specified .wim file does not exist.
        timeout /t 3 /nobreak >nul
        goto :mountwim_start
    )
    
    call :banner
    echo .wim: %wimfile%
    echo.
    echo Enter the index number to mount from the .wim file.
    set /p "wimindex= Index: "
    
    :mountwim_mountdir
    call :banner
    echo .wim: %wimfile% at index %wimindex%
    echo.
    echo Enter a mount location.
    set /p "mountdir= Location: "
    if not exist "%mountdir%" (
        echo The specified mount directory does not exist. Creating it...
        mkdir "%mountdir%"
        if not exist "%mountdir%" (
            echo Failed to create the mount directory.
            timeout /t 3 /nobreak >nul
            goto :mountwim_mountdir
        )
    )
    
    call :banner
    echo Mounting image...
    dism /mount-image /imagefile:"%wimfile%" /index:%wimindex% /mountdir:"%mountdir%"
    if %errorlevel% neq 0 (
        echo DISM command failed.
        echo Please check the .wim file, index, mount dir, or for in-use files.
        timeout /t 5 /nobreak >nul
        goto :mountwim_start
    )
    
    :chooseDirectory
    call :banner
    echo Please select a directory option:
    echo 1. Use the current folder
    echo 2. Use the "mum" subfolder in the batch file's folder
    echo 3. Specify a directory
    echo.
    set /p dirChoice="Enter your choice: "
    
    if "%dirChoice%"=="1" (
        set dirPath=%cd%
    ) else if "%dirChoice%"=="2" (
        set dirPath=%~dp0mum
    ) else if "%dirChoice%"=="3" (
        set /p dirPath="Enter the directory path to search for .mum files: "
    ) else (
        echo Invalid choice. Please try again.
        timeout /t 3 /nobreak >nul
        goto :menu
    )
    
    call :checkUpdateMum
    goto :menu
    
    :checkUpdateMum
    call :banner
    if exist "%dirPath%\update.mum" (
        echo.
        echo An update.mum file was found in the selected directory.
        echo Please choose an option:
        echo 1. Apply update.mum and ignore all other .mum files
        echo 2. Ignore update.mum and proceed with installing all other .mum files
        echo.
        set /p updateChoice="Enter your choice: "
        if "%updateChoice%"=="1" (
            call :installSingleMum "%dirPath%\update.mum"
        ) else if "%updateChoice%"=="2" (
            call :installMumFiles
        ) else (
            echo Invalid choice. Please try again.
            timeout /t 3 /nobreak >nul
            goto :checkUpdateMum
        )
    ) else (
        call :installMumFiles
    )
    goto :menu
    
    :installSingleMum
    set mumFile=%1
    call :banner
    echo Installing %mumFile%...
    dism /online /add-package /packagepath:"%mumFile%" >nul 2>&1
    if !errorlevel! neq 0 (
        echo Error: !errorlevel! >> 0-failure.txt
        dism /online /add-package /packagepath:"%mumFile%" 2>> 0-failure.txt
    ) else (
        echo %mumFile% >> 0-success.txt
    )
    echo Installation results have been recorded in 0-success.txt and 0-failure.txt.
    timeout /t 5 /nobreak >nul
    goto :menu
    
    :installMumFiles
    call :banner
    if not exist "%dirPath%" (
        echo The specified directory does not exist.
        timeout /t 3 /nobreak >nul
        goto :menu
    )
    
    echo > 0-success.txt
    echo > 0-failure.txt
    
    for %%f in ("%dirPath%\*.mum") do (
        if "%%f" neq "%dirPath%\update.mum" (
            echo Installing %%f...
            dism /online /add-package /packagepath:"%%f" >nul 2>&1
            if !errorlevel! neq 0 (
                echo Error: !errorlevel! >> 0-failure.txt
                dism /online /add-package /packagepath:"%%f" 2>> 0-failure.txt
            ) else (
                echo %%f >> 0-success.txt
            )
        )
    )
    
    echo Installation results have been recorded in 0-success.txt and 0-failure.txt.
    timeout /t 5 /nobreak >nul
    goto :menu
    
    :installMumFilesOffline
    set mountdir=%1
    call :banner
    if not exist "%mountdir%" (
        echo The specified mount directory does not exist.
        timeout /t 3 /nobreak >nul
        goto :menu
    )
    
    echo > 0-success.txt
    echo > 0-failure.txt
    
    for %%f in ("%dirPath%\*.mum") do (
        if "%%f" neq "%dirPath%\update.mum" (
            echo Installing %%f...
            dism /image:"%mountdir%" /add-package /packagepath:"%%f" >nul 2>&1
            if !errorlevel! neq 0 (
                echo Error: !errorlevel! >> 0-failure.txt
                dism /image:"%mountdir%" /add-package /packagepath:"%%f" 2>> 0-failure.txt
            ) else (
                echo %%f >> 0-success.txt
            )
        )
    )
    
    echo Installation results have been recorded in 0-success.txt and 0-failure.txt.
    timeout /t 5 /nobreak >nul
    call :handlemount
    
    :handlemount
    call :banner
    echo (S)ave, (d)iscard, or (c)ontinue with the image mounted?
    choice /c:sdc /n /m:"If unsure, check generated .txt files... : "
    if %errorlevel% equ 3 (
        set mountopt=keep
    ) else if %errorlevel% equ 2 (
        set mountopt=discard
    ) else if %errorlevel% equ 1 (
        set mountopt=save
    ) else (
        set mountopt=err
    )
    
    if "%mountopt%" == "save" (
        dism /unmount-image /mountdir:"%mountdir%" /commit
        echo Image saved and dismounted.
    ) else if "%mountopt%" == "discard" (
        dism /unmount-image /mountdir:"%mountdir%" /discard
        echo Image discarded and dismounted.
    ) else if "%mountopt%" == "err" (
        echo.
        echo Unknown error setting variable.
        timeout /t 3 /nobreak >nul
        call :handlemount
    ) else if "%mountopt%" == "keep" (
        goto :menu
    )
    
    goto :menu
    
    
    
    :exit
    set "lines=echo. && echo."
    set "cnt=echo COUNTDOWN"
     > %tmp%\Rest1.vbs echo Wscript.sleep 1000 && SET R1=Start /w %tmp%\Rest1.vbs
    cls
    %lines% && echo ">---> Closing in ...3" && %cnt% 3 >> %tmp%\count.txt &&  %R1% && cls
    %lines% && echo ">---> Closing in ....2" && %cnt% 2 >> %tmp%\count.txt &&  %R1% && color 06 && cls
    %lines% && echo ">---> Closing in .....1" && %cnt% 1 >> %tmp%\count.txt &&  %R1% && cls
    del %tmp%\Rest1.vbs > nul && DEL %tmp%\count.txt > nul && exit
    
    
    :banner
    cls
    echo.
    echo ___________________________________________________
    echo.                                            
    echo  /\_/\  ___   _   _  _ __    /\/\   /\ /\   /\/\
    echo  \_ _/ / _ \ ^| ^| ^| ^|^| '__^|  /    \ / / \ \ /    \
    echo   / \ ^| (_) ^|^| ^|_^| ^|^| ^|    / /\/\ \\ \_/ // /\/\ \
    echo   \_/  \___/  \__,_^|^|_^|    \/    \/ \___/ \/    \/
    echo.
    echo ___________________________________________________
    echo.
    echo.
    goto :eof
    
    ::githubgist
    
    Best use case is probably adding packages to offline images, or restoring missing sources. No error handing for instances where a .mum needs another .mum installed first. Perhaps rerunning the folder until errors resolve would work for now. Might be capable of being utilized for unofficial update packs. No function added to ignore applicability but that's an easy edit for those who need.

    Edit: Fixed save/continue offline image doing the wrong thing.
     
  16. xinso

    xinso MDL Guru

    Mar 5, 2009
    13,123
    13,997
    340
    #16717 xinso, Jun 29, 2024 at 23:53
    Last edited: Jun 30, 2024 at 02:33
    I am not able to answer the same question of yours for the following reasons:
    1. I don't have the old 19041.1 script of mine you mentioned. I cannot test it.
    2. I don't know about the 3rd-party tool.
     
  17. xxxjdlk29

    xxxjdlk29 MDL Novice

    Jun 7, 2024
    1
    0
    0
    Is there any way to change Installation ID?
     
  18. xinso

    xinso MDL Guru

    Mar 5, 2009
    13,123
    13,997
    340
  19. xinso

    xinso MDL Guru

    Mar 5, 2009
    13,123
    13,997
    340
    #16720 xinso, Jun 30, 2024 at 03:46
    Last edited: Jun 30, 2024 at 05:51