Wednesday, February 12, 2020

How To Upgrade Windows 2012/2016 to Windows 2019

1. Normally, i'm not a fan of in-place upgrades, depends on organization requirements. A clean install with scripted configurations is always better.

2. Here is the lazy way for those who have no choice...

3. Snapshot the VM (VMware, Hyper-V, KVM...whatever it is).

4. Add the iSO to the VM (Don't bother booting from the BIOS and running the ISO that way). It will just tell you to boot into the OS anyway. (thank you Microlazy)

5. Open a CMD or Powershell as an administrator.

6. Adprep is now located under "support\adrep\" on the 2019 disk. (Domain Controllers Only)


7. From the CLI run the following: adprep.exe /forestprep and then click "C"

8. Domain prep: adprep.exe /domainprep /domain

9. Next upgrade the GPO Domains: adprep.exe /domainprep /gpprep /domain

10. Now run the upgrade installer or relaunch it and "Continue where I left off"

11. If it barks about space. Don't add. Reduce. Run this command to wipe out and clean all of the logs: for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"

12. Delete data in the C:\Windows\WinSxS folder over 2 years old (watch GB's drop off!) (FYI. this is the Windows Update folder. You don't need 1/2 of the crap on here) PRO NOTE: You should be doing this for your VM templates before you start using them.

13. c:\dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

14. c:\dism.exe /Online /Cleanup-image /StartcomponentCleanup

15. Post upgrade. You will be prompted for the new MAK Key. Run the following from the command line first as administrator: slmgr -rearm and reboot the server with shutdown /r /t 00 (takes it down and reboots it immediately). Then activate with slmgr -ipk "XXX-The MAK Key"

16. If you get an error. Clear the registry of the key, clear the OS and then reboot the OS. After that activation should work fine via the activation GUI.

17. Commands:

slmgr -cpky && slmgr -upk && slmgr -rearm

shutdown /r /t 00 (shutdown and reboot now)
Reference for WinSxS Cleanup: