is it possible to downgrade while keeping apps to older build by performing inplace upgrade from iso? i have insider canary build 27871 pro, i've patched and tried to upgrade from insider dev iso 26200.5670 pro (to get 25h2) but setup states "Your files, apps, and settings can't be kept because your current version of Windows might be installed on an unsupported directory or you're trying to install an older version of Windows"
Just wanted to say that this tool helped me repair an installation of Server 2025 where an in-place upgrade install of the same version of Server 2025 (26100.1) was failing (not certain why, but from the logs in the C:\$WINDOWS.~BT folder, it appeared to be due to there being "no antivirus installed"). Running this tool on the same build of IoTEnterpriseS resulted in a successful in-place upgrade to the client edition, and subsequent success doing the same with the previously failing server edition.
Hey Enthousiast, I have a few question about your script. 1. Your script seems to run fine without administrator privileges. Is that the case, or should I run it as administrator? 2. Is it best to run your script on the ISO before integrating updates to it, or should I integrate updates into it first and then run your script? In my case, I'm working with 26100.1.240331-1435.ge_release_CLIENT_ENTERPRISES_OEM_x64FRE_en-us.iso, which is Windows 11 IoT Enterprise LTSC 2024. I will be adding the October updates to it next month using using the UUP dump site, specifically for build 24H2 if I'm not mistaken, along with W10UI to do the integration. 3. Should I stick to using Upgrade Enabler Tool 2.1 beta 3 on the first page, or would it be better to use Upgrade Enabler Tool 2.1 beta 4 on the 4th page? Maybe it doesn't matter but I thought I'd ask. P.S. The "README.txt" file in beta 4 says: Put the source ISO inside the "Source_ISO" folder and run "RunME_Test_3.cmd". It should say: Put the source ISO inside the "Source_ISO" folder and run "RunME_Test_4.cmd". A small mistake, but I thought I'd mention it. Thanks for making the script. It seems to have worked for me. I'll test the new ISO next month.
It should ask for admin priveleges when started by simply doubleclicking, I run it as last step in my projects. When you create virtual editions after inserting the modifief xml then it is not working (in my tests). Use the latest, the one at the OP should be the latest (i now noticed i didn't update the OP) Updating the tool to fix the info in the project folder, releasing v2.1beta5 soon.
Thanks for answering my questions. I did notice that your tool runs just fine without administrator enforced. I'll be sure to run it with admin in the future though, just in case. I'm looking forward to beta 5.
I tried this tool, but it looks like it doesn't work. I'm on 26200.5751 and I've tried to get to regular 25H2 builds (like 26200.6718), but not use, still cannot choose "Keep personal files and apps."
But I'm stuck at this point... I tried everything I could think of... And I still cannot figure out a solution.
Greetings from Lima, Peru !!! I was trying to upgrade to 26200.6718 using ISO download from uupdump.netdump and it failed twice... I then tried installing the KB5054156 EP first and then just the uupdump.net update files using W10UI V55 and it worked..... Just my 2 cents... JCC2
What Enthousiast meant when he said "You should not even need this tool for that" is that you should be able upgrade from a previous Home or Pro edition of Windows (e.g. 23H2 to 24H2 to 25H2) without needing this tool at all. The purpose of this tool is to allow users to force an upgrade of a version of Windows to another version of Windows that was never never meant to get upgraded to (e.g. Windows 11 Home 23H2 to Windows 11 IoT Enterprise LTSC 2024), while still keeping all installed programs, files and folders intact. Microsoft typically prevents this from happening since Home and Pro versions are not designed to get upgraded to an Enterprise edition like the IoT LTSC, but this tool essentially changes the registry settings within the ISO of Windows, such as Windows 11 IoT Enterprise LTSC 2024, so that an upgrade becomes possible. If I've left anything out, I'm sure someone here will add to this, or correct anything I may have said incorrectly.
This tool was initially developed for upgrades to 2019 LTSC, there was no direct path for that and the xml modification made the path possible and to keep all during the upgrade. It is usefull for when the normal upgrade setup doesn't allow to keep all files, apps and such.
https://forums.mydigitallife.net/threads/windows-11-hotfix-repository.83741/page-177#post-1890365 I tried to perform an in-place upgrade to any regular build of 25H2, but the "Keep personal files and apps" option was grayed out for every build of 25H2 I tried. I was stuck on 26200.5751, which is a Dev build, not a regular build of 25H2. In the meantime, I was able to patch setupcompat.dll within the following ISO file: Windows11_InsiderPreview_Client_x64_en-us_26200.iso. So, I forced an upgrade to 26200.5074, and right now I'm on build 26200.6718. Patching setupcompat.dll was literally my only solution.
Is an IP level build, those switches have noting to do with the upgradematrix.xml, this tool won't fix the MSFT mess of switching to and from beta/dev/retail.
This tool did the trick and works perfectly. I used beta 5. Upgraded from Windows 11 Home 23H2 using build 22631.6060 (final October 14, 2025 update) to Windows 11 IoT Enterprise LTSC 2024 using W10UI 10.55 to integrate updates from build 26100.1 to 26100.6899 (October 14, 2025 update). Thank you for the tool, Enthousiast. You saved me a lot of time.
Good night. I was trying to upgrade Windows 11 Home to Windows 11 IoT Enterprise LTSC 2024. UpgradeMatrix.xml FiX Tool v2.1 beta 5 changes only the first part, but not the second. It does not insert TargetEdition, and as a result, it is not possible to update files and applications while saving them. How can I solve this problem? Maybe there is some kind of debugging or a log file?
Spoiler Code: E:\Upgrade_Enabler_Tool_v2.1_b5>echo. E:\Upgrade_Enabler_Tool_v2.1_b5>echo=============================================== ============================================== E:\Upgrade_Enabler_Tool_v2.1_b5>echo Running ISO Upgrade Enabler v2.1_b5... Running ISO Upgrade Enabler v2.1_b5... E:\Upgrade_Enabler_Tool_v2.1_b5>echo. E:\Upgrade_Enabler_Tool_v2.1_b5>echo Crappy Tools By Enthousiast [USER=35247]@MDL[/USER] Crappy Tools By Enthousiast [USER=35247]@MDL[/USER] E:\Upgrade_Enabler_Tool_v2.1_b5>echo=============================================== ============================================== E:\Upgrade_Enabler_Tool_v2.1_b5>echo. E:\Upgrade_Enabler_Tool_v2.1_b5>REM Detect OS Architecture E:\Upgrade_Enabler_Tool_v2.1_b5>set "arch=x64" E:\Upgrade_Enabler_Tool_v2.1_b5>if /I AMD64 == x86 (if not defined PROCESSOR_ARCHITEW6432 (set "arch=x86" ) ) E:\Upgrade_Enabler_Tool_v2.1_b5>if x64 == x86 ( set "_wimlib=E:\Upgrade_Enabler_Tool_v2.1_b5\bin\wimlib-imagex.exe" set "xOS=x86" ) else ( set "_wimlib=E:\Upgrade_Enabler_Tool_v2.1_b5\bin\bin64\wimlib-imagex.exe" set "xOS=amd64" ) E:\Upgrade_Enabler_Tool_v2.1_b5>if exist "TEMP" RD /S /Q "TEMP" E:\Upgrade_Enabler_Tool_v2.1_b5>if not exist "Source_ISO\*.iso" ( echo. ECHO========================================================== echo No iso file detected in Source_ISO dir... ECHO========================================================== echo. pause exit /b ) E:\Upgrade_Enabler_Tool_v2.1_b5>mkdir "TEMP" E:\Upgrade_Enabler_Tool_v2.1_b5>for /F %i in ('dir /b Source_ISO\*.iso') do bin\7z.exe e -y -oTEMP Source_ISO\%i sources\setup.exe 1>nul E:\Upgrade_Enabler_Tool_v2.1_b5>bin\7z.exe e -y -oTEMP Source_ISO\en-us_windows_10_iot_enterprise_ltsc_2021_x64_dvd_257ad90f.iso sources\setup.exe 1>nul E:\Upgrade_Enabler_Tool_v2.1_b5>bin\7z.exe l .\TEMP\setup.exe 1>.\TEMP\version.txt 2>&1 E:\Upgrade_Enabler_Tool_v2.1_b5>for /F "tokens=4 delims=. " %i in ('findstr /i /b FileVersion .\TEMP\version.txt') do set vermajor=%i E:\Upgrade_Enabler_Tool_v2.1_b5>set vermajor=19041 E:\Upgrade_Enabler_Tool_v2.1_b5>set vermajor=19041 E:\Upgrade_Enabler_Tool_v2.1_b5>REM ========== E:\Upgrade_Enabler_Tool_v2.1_b5>IF NOT DEFINED vermajor ( echo. ECHO========================================================== echo Detecting setup.exe version failed... ECHO========================================================== echo. Goto :Cleanup ) E:\Upgrade_Enabler_Tool_v2.1_b5>SET "Winver=" E:\Upgrade_Enabler_Tool_v2.1_b5>IF 19041 EQU 22000 SET "Winver=22000" E:\Upgrade_Enabler_Tool_v2.1_b5>IF 19041 EQU 22621 SET "Winver=226x1" E:\Upgrade_Enabler_Tool_v2.1_b5>IF 19041 EQU 17763 SET "Winver=17763" E:\Upgrade_Enabler_Tool_v2.1_b5>IF 19041 EQU 19041 SET "Winver=1904x" E:\Upgrade_Enabler_Tool_v2.1_b5>IF 19041 EQU 26100 SET "Winver=26100" E:\Upgrade_Enabler_Tool_v2.1_b5>IF NOT DEFINED Winver ( echo. ECHO========================================================== echo Unsupported iso version... ECHO========================================================== echo. Goto :Cleanup ) E:\Upgrade_Enabler_Tool_v2.1_b5>if exist "ISO" RD /S /Q "ISO" E:\Upgrade_Enabler_Tool_v2.1_b5>MkDir "ISO" E:\Upgrade_Enabler_Tool_v2.1_b5>echo. E:\Upgrade_Enabler_Tool_v2.1_b5>echo=============================================== ============================================== E:\Upgrade_Enabler_Tool_v2.1_b5>echo Extracting the 1904x source ISO... Extracting the 1904x source ISO... E:\Upgrade_Enabler_Tool_v2.1_b5>echo=============================================== ============================================== E:\Upgrade_Enabler_Tool_v2.1_b5>echo. E:\Upgrade_Enabler_Tool_v2.1_b5>bin\7z x -y -o"ISO\" "Source_ISO\" 7-Zip 21.07 (x86) : Copyright (c) 1999-2021 Igor Pavlov : 2021-12-26 Scanning the drive for archives: 1 folder, 1 file, 4851668992 bytes (4627 MiB) Extracting archive: Source_ISO\en-us_windows_10_iot_enterprise_ltsc_2021_x64_dvd_257ad90f.iso -- Path = Source_ISO\en-us_windows_10_iot_enterprise_ltsc_2021_x64_dvd_257ad90f.iso Type = Udf Physical Size = 4851668992 Comment = CES_X64FREO_EN-US_DV9 Cluster Size = 2048 Created = 2021-10-07 03:00:00 Everything is Ok Folders: 85 Files: 904 Size: 4846242161 Compressed: 4851668992 E:\Upgrade_Enabler_Tool_v2.1_b5>if exist "ISO\sources\install.wim" set WIMFILE=install.wim E:\Upgrade_Enabler_Tool_v2.1_b5>if exist "ISO\sources\install.esd" set WIMFILE=install.esd E:\Upgrade_Enabler_Tool_v2.1_b5>for /F "tokens=2 delims=: " %# in ('dism.exe /english /get-wiminfo /wimfile:"ISO\sources\install.wim" /index:1 | find /i "Architecture"') do set warch=%# E:\Upgrade_Enabler_Tool_v2.1_b5>set warch=x64 E:\Upgrade_Enabler_Tool_v2.1_b5>echo. E:\Upgrade_Enabler_Tool_v2.1_b5>echo=============================================== ============================================== E:\Upgrade_Enabler_Tool_v2.1_b5>echo Adding the modified 1904x x64 UpgradeMatrix.xml to the 1904x x64 install.wim... Adding the modified 1904x x64 UpgradeMatrix.xml to the 1904x x64 install.wim... E:\Upgrade_Enabler_Tool_v2.1_b5>echo=============================================== ============================================== E:\Upgrade_Enabler_Tool_v2.1_b5>echo. E:\Upgrade_Enabler_Tool_v2.1_b5>for /F "tokens=3 delims=: " %i in ('E:\Upgrade_Enabler_Tool_v2.1_b5\bin\bin64\wimlib-imagex.exe info ISO\sources\install.wim | findstr /c:"Image Count"') do set images=%i E:\Upgrade_Enabler_Tool_v2.1_b5>set images=2 E:\Upgrade_Enabler_Tool_v2.1_b5>for /L %i in (1 1 2) do (E:\Upgrade_Enabler_Tool_v2.1_b5\bin\bin64\wimlib-imagex.exe update "ISO\Sources\install.wim" %i --command="add 'Files\UpgradeMatrix\UpgradeMatrix_x64.xml' '\Windows\servicing\Editions\UpgradeMatrix.xml'" ) E:\Upgrade_Enabler_Tool_v2.1_b5>(E:\Upgrade_Enabler_Tool_v2.1_b5\bin\bin64\wimlib-imagex.exe update "ISO\Sources\install.wim" 1 --command="add 'Files\UpgradeMatrix\UpgradeMatrix_x64.xml' '\Windows\servicing\Editions\UpgradeMatrix.xml'" ) Scanning "Files\UpgradeMatrix\UpgradeMatrix_x64.xml" (loading as WIM path: "\Windows\servicing\Editions\UpgradeMatrix.xml")... 503 bytes scanned (1 files, 0 directories) Updating "\Windows\servicing\Editions\UpgradeMatrix.xml" in WIM image Using LZX compression with 1 thread Archiving file data: 503 bytes of 503 bytes (100%) done E:\Upgrade_Enabler_Tool_v2.1_b5>(E:\Upgrade_Enabler_Tool_v2.1_b5\bin\bin64\wimlib-imagex.exe update "ISO\Sources\install.wim" 2 --command="add 'Files\UpgradeMatrix\UpgradeMatrix_x64.xml' '\Windows\servicing\Editions\UpgradeMatrix.xml'" ) Scanning "Files\UpgradeMatrix\UpgradeMatrix_x64.xml" (loading as WIM path: "\Windows\servicing\Editions\UpgradeMatrix.xml")... 503 bytes scanned (1 files, 0 directories) Updating "\Windows\servicing\Editions\UpgradeMatrix.xml" in WIM image Using LZX compression with 1 thread Archiving file data: 0 bytes of 0 bytes (0%) donene E:\Upgrade_Enabler_Tool_v2.1_b5>echo. E:\Upgrade_Enabler_Tool_v2.1_b5>IF /I "0" == "0" GOTO :CreateISO E:\Upgrade_Enabler_Tool_v2.1_b5>echo. E:\Upgrade_Enabler_Tool_v2.1_b5>IF /I "1" NEQ "1" GOTO :SKIPEI E:\Upgrade_Enabler_Tool_v2.1_b5>echo. E:\Upgrade_Enabler_Tool_v2.1_b5>echo ============================================================ ============================================================ E:\Upgrade_Enabler_Tool_v2.1_b5>echo Copying the generic ei.cfg to the work dir... Copying the generic ei.cfg to the work dir... E:\Upgrade_Enabler_Tool_v2.1_b5>echo (If exists, the original file will be renamed to EI.CFG.ORI) (If exists, the original file will be renamed to EI.CFG.ORI) E:\Upgrade_Enabler_Tool_v2.1_b5>echo ============================================================ ============================================================ E:\Upgrade_Enabler_Tool_v2.1_b5>echo. E:\Upgrade_Enabler_Tool_v2.1_b5>IF EXIST "ISO\Sources\EI.CFG" ren "ISO\Sources\EI.CFG" "EI.CFG.ORI" E:\Upgrade_Enabler_Tool_v2.1_b5>COPY /Y "Files\EI.CFG" "ISO\Sources\" Скопировано файлов: 1. E:\Upgrade_Enabler_Tool_v2.1_b5>echo. E:\Upgrade_Enabler_Tool_v2.1_b5>echo. E:\Upgrade_Enabler_Tool_v2.1_b5>echo=============================================== ============================================== E:\Upgrade_Enabler_Tool_v2.1_b5>echo Creating the 1904x x64 ISO... Creating the 1904x x64 ISO... E:\Upgrade_Enabler_Tool_v2.1_b5>echo=============================================== ============================================== E:\Upgrade_Enabler_Tool_v2.1_b5>echo. E:\Upgrade_Enabler_Tool_v2.1_b5>for /F %# in ('powershell "get-date -format _yyyy_MM_dd"') do set "isodate=%#" E:\Upgrade_Enabler_Tool_v2.1_b5>set "isodate=_2025_11_04" E:\Upgrade_Enabler_Tool_v2.1_b5>echo. E:\Upgrade_Enabler_Tool_v2.1_b5>for /F "delims=" %i in ('dir /b Source_ISO\*.iso') do set "isoname=%i" E:\Upgrade_Enabler_Tool_v2.1_b5>set "isoname=en-us_windows_10_iot_enterprise_ltsc_2021_x64_dvd_257ad90f.iso" E:\Upgrade_Enabler_Tool_v2.1_b5>set "isoname=en-us_windows_10_iot_enterprise_ltsc_2021_x64_dvd_257ad90f_FIXED_Upgrade_Matrix_2025_11_04.iso" E:\Upgrade_Enabler_Tool_v2.1_b5>bin\cdimage.exe -bootdata:2#p0,e,b"ISO\boot\etfsboot.com"#pEF,e,b"ISO\efi\Microsoft\boot\efisys.bin" -o -m -u2 -udfver102 -l1904x_x64 ISO "en-us_windows_10_iot_enterprise_ltsc_2021_x64_dvd_257ad90f_FIXED_Upgrade_Matrix_2025_11_04.iso" OSCDIMG 2.56 CD-ROM and DVD-ROM Premastering Utility Copyright (C) Microsoft, 1993-2012. All rights reserved. Licensed only for producing Microsoft authorized content. Scanning source tree (500 files in 41 directories) Scanning source tree complete (905 files in 86 directories) Computing directory information complete Image file is 4865654784 bytes (before optimization) Writing 905 files in 86 directories to en-us_windows_10_iot_enterprise_ltsc_2021_x64_dvd_257ad90f_FIXED_Upgrade_Matrix_2025_11_04.iso 100% complete Storage optimization saved 25 files, 14182400 bytes (1% of image) After optimization, image file is 4853540864 bytes Space saved because of embedding, sparseness or optimization = 14182400 Done. E:\Upgrade_Enabler_Tool_v2.1_b5>echo. E:\Upgrade_Enabler_Tool_v2.1_b5>echo=============================================== ============================================== E:\Upgrade_Enabler_Tool_v2.1_b5>echo Cleaning up the ISO folder... Cleaning up the ISO folder... E:\Upgrade_Enabler_Tool_v2.1_b5>echo=============================================== ============================================== E:\Upgrade_Enabler_Tool_v2.1_b5>if exist "ISO" RD /S /Q "ISO" E:\Upgrade_Enabler_Tool_v2.1_b5>if exist "TEMP" RD /S /Q "TEMP" E:\Upgrade_Enabler_Tool_v2.1_b5>echo. E:\Upgrade_Enabler_Tool_v2.1_b5>pause Для продолжения нажмите любую клавишу . . .
I never will get why people don't just run a cmd by simply doubleclicking it. By running it this way there is so much white noise in the cmd windows output. I can't find errors and from what i see the fixed ISO is made.