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.
Pre-upgrade
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.
Post-upgrade
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.
Kent your guidance here has been most helpful. I have upgraded a standalone dc from w2012r2 to w2019 successfully. However at the first post upgrade boot I there was an error re DHCP server, and the server taskbar had a warning re no internet. I tried the self fix offered by the OS but it failed with “The specified servers are already present in the directory service.” This is probably the dhcp reauth issue you mentioned. I found the static ip had been lost, when I assign it, it does not validate, but I have allowed it to retain settings for the interim. I ran a ps script from this page
https://campbell.scot/reauthorise-windows-server-dhcp/
which purports to deauth and reauth dhcp but no change; then used the gui for the same, no change. There are no other devices set to the ip of the dc. What else can I try?