The business with slmgr.vbs did not work for me. It complained about the wrong SKU when I tried to put in a Windows 10 Enterprise LTSC product key.
Here's what I did to pull this off. This was moving from Windows 10 Pro to Windows 10 Enterprise LTSC 2021 in-place (version 21H2 in both cases).
- Open regedit and navigate to: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
- Change "EditionID" to "EnterpriseS"
- Change "ProductName" to "Windows 10 Enterprise 2021 LTSC"
- Run setup.exe from Windows 10 Enterprise LTSC 2021 install media and perform an in-place upgrade. (With the registry change it should allow you to keep "all apps and files".)
Note that the EditionID and ProductName registry entries will revert to their old values after some time, so be sure to kick off the setup process promptly once you make the changes.
This would be fully unsupported by Microsoft but it seemed to work fine for me.
You can use a similar trick to perform other unsupported in-place upgrades (for example, moving from Windows 10 Pro to Windows 10 Home). Change "EditionID" and "ProductName" to what they should be on the OS that you want to move to, and then kick off an in-place upgrade using that install media. Your system will be "not activated" after the upgrade is finished and you'll need to provide a proper product key.
I doubt that you can safely "downgrade" to an older Windows 10 version using this method. You won't be able to move to Windows 10 Enterprise LTSC 2019 in-place if you have a Windows 10 version higher than 1809 installed. If Microsoft releases a 22H2 version next year, upgrading to it might make an in-place upgrade to 2021 LTSC (based on 21H2) impossible.