Here are the high level steps which you can use to upgrade the Active Directory.  


Steps :

1.  Upgrade the schema using correct version of OS – Adprep

     Reference -

Note - Windows Server 2008 R2 includes a 32-bit version and a 64-bit version of Adprep.exe. The 64-bit version runs by default. If you want  to run one of the Adprep.exe commands on a 32-bit computer, use the 32-bit version of Adprep.exe. It is called Adprep32.exe. In Windows 2008 R2, it is located in the \Support\Adprep folder.

You can ignore the following message. However, if you are planning to install RODC later, you need perform ADPREP/RODCPREP first. First Windows 2008 DC cannot be a Read Only Domain Controller (RODC). 


2.  Verify the schema version

Note - You can verify the schema version using dsquery * cn=schema,cn=configuration,dc=sivarajan,dc=com -scope base -attr objectVersion command. The following table lists the Active Directory Schema and the corresponding Object Version:

Active Directory Object Version
Windows 2000 13
Windows 2003 30
Windows 2003 R2 31
Windows 2008 44
Windows 2008 R2 47
Windows 8 Beta 52
Windows 2012 56
Windows 2012 R2 69
Windows 2016 87

***ObjectVersion 39 - Please refer 

3.  Install a new server with correct version of OS and join this server to the existing domain.

4.  Perform DCPRMO on this server and select Additional Domain Controller for an existing Domain option.

     Beginning with Windows Server 2012, you can install AD DS using Windows PowerShell the Install-ADDSDomainController command.

     Reference - 

     Reference PowerShell -

     Note - If you are using Active Directory Integrated (ADI) DNS, it will get replicated as part of the Active Directory replication.  

5.  If you are planning to decommission the old servers, you need transfer FSMO roles, DHCP etc to the new server.

Note - You can identify the FSMO role DC information using Netdom /Query FSMO command.

   Reference FSMO

   DHCP -

6.  You can remove (demote) a domain controller using DCPROMO command and again, since WS2012 also possible with PowerShell.

    Reference -

    Reference PowerShell - 

Other Languages

This article is available in other languages: