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
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?
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
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.
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!
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. Spoiler: yourmum.bat 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.
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.