In-Place Upgrading A Windows Server 2012 Domain Controller to Windows Server 2019 or 2022

Generally speaking, in-place upgrading from one server version to another usually goes almost perfectly, given that the upgrade path is supported. You can just mount an ISO image and go with it. But when the server you are upgrading is a domain controller. There are other things to consider before going ahead.


First, if you have Azure (Entra) AD Connect installed on the server, an in-place upgrade will mess things up quite badly. What Microsoft suggests is to use the Swing migration to set the original server in stage mode and temporarily move the Azure (Entra) AD Connect to a different server.

You will also need to prepare the AD schema before the in-place upgrade. Mount the Windows Server 2019 or 2022 Installation ISO media, go to the support\adprep folder and run the following commands.

adprep /forestprep
adprep /domainprep

Once done, run the following PowerShell cmdlet to confirm the result about the schema version you are about to upgrade to.

Get-ADObject (Get-ADRootDSE).schemaNamingContext -Property objectVersion

Here is the schema version value table for your reference.

Windows Server 2012 R2 - 69
Windows Server 2016 - 87
Windows Server 2019 - 88
Windows Server 2022 - 88

The actual upgrade

Now, it is good to go with the in-place upgrade. The actual process will be quite straightforward and should be done fairly quickly.


Everything should be up and running right away, including DNS, AD services as well as group policy setups. Two things might require your attention.

The DHCP server might need to be re-authorized to be used again.

Also, if you are using the SMTP services from the legacy IIS 6, you might need to re-configure everything. The settings were wiped out during one of my upgrades. It’s a good idea to document the setup before doing the upgrade.


Leave a Reply

Your email address will not be published. Required fields are marked *