Skip to main content

Active Directory Domain Controller Migration – General Procedure


Document the Existing Environment

Identify all current domain controllers:

netdom query dc

Identify the current FSMO role holders:

netdom query fsmo

Document:

  • Existing Domain Controllers
  • FSMO role holders
  • DNS servers
  • DHCP servers/scopes
  • DHCP DNS options
  • Firewall DHCP/DNS settings
  • Existing printer server, if applicable
  • Current server IP addresses

Put the results in the service ticket before making changes.

2.

Verify Existing Active Directory Health

Run on the existing Domain Controller:

dcdiag /skip:systemlog

Check DNS health:

dcdiag /test:dns

Check replication:

repadmin /showrepl

Optional replication summary:

repadmin /replsummary

Resolve significant AD, DNS, or replication errors before promoting the replacement DC.

Save the results in the ticket.

3.

Prepare the New Server

Before promotion:

  • Assign a static IP address.
  • Set the server's DNS to the existing Domain Controller/DNS server.
  • Join the server to the existing domain.
  • Install Windows Updates.
  • Confirm hostname and IP configuration.
  • Verify communication with the existing DC.

4.

Install Active Directory Domain Services

Using Server Manager → Add Roles and Features, install:

  • Active Directory Domain Services
  • DNS Server, if the existing DC provides DNS

If this server will also replace the print server, install:

  • Print and Document Services

Do not configure printers yet unless needed.

5.

Promote the New Server to a Domain Controller

From Server Manager:

AD DS → Promote this server to a domain controller

Choose:

Add a domain controller to an existing domain

Enable:

  • DNS Server
  • Global Catalog

Complete the promotion and reboot.

6.

Verify the New Domain Controller

After reboot, confirm SYSVOL and NETLOGON exist:

net share

You should see:

NETLOGON
SYSVOL

Check AD health:

dcdiag /skip:systemlog

Check DNS:

dcdiag /test:dns

Check replication:

repadmin /showrepl

Force a replication sync if needed:

repadmin /syncall /AdeP

Recalculate the replication topology if needed:

repadmin /kcc

Run another replication check afterward.

Do not continue with the old DC removal until replication, SYSVOL, NETLOGON, and DNS are healthy.

7.

Transfer FSMO Roles

Verify the current FSMO holders first:

netdom query fsmo

Transfer all FSMO roles to the new DC:

Move-ADDirectoryServerOperationMasterRole -Identity "WC-DC01" -OperationMasterRole SchemaMaster,DomainNamingMaster,PDCEmulator,RIDMaster,InfrastructureMaster -Confirm:$false

Replace WC-DC01 with the correct new DC name.

Verify afterward:

netdom query fsmo

Confirm all five roles now point to the new Domain Controller.

8.

Verify DNS

Verify that:

  • AD-integrated DNS zones replicated to the new DC.
  • Forward lookup zones are present.
  • Reverse lookup zones are present, if used.
  • DNS forwarders are correct.
  • AD DNS records exist for the new DC.
  • Clients can resolve the domain using the new DNS server.

Run:

dcdiag /test:dns

Update DHCP and/or firewall DNS settings so clients receive the new Domain Controller as a DNS server.

Do not remove the old DC from DNS/DHCP settings until the new server has been verified.

9.

Migrate DHCP if Applicable

If DHCP is hosted on the old Windows server:

  • Export the DHCP configuration.
  • Install the DHCP role on the new server.
  • Import the DHCP configuration.
  • Authorize the new DHCP server in Active Directory.
  • Verify scopes, reservations, exclusions, options, and leases.
  • Verify DHCP Option 006 points clients to the correct DNS server(s).

If DHCP is provided by the firewall, update its DNS settings instead.

10.

Migrate Print Services if Applicable

On the old print server:

Open Print Management.

Right-click the print server and select:

Export printers to a file

On the new server:

Open Print Management and select:

Import printers from a file

Verify:

  • Printers
  • Printer drivers
  • Ports
  • Share names
  • Printer permissions

Test printing before removing the old print server.

11.

Final Active Directory Validation

Run on the new DC:

dcdiag /skip:systemlog
dcdiag /test:dns
repadmin /showrepl
repadmin /replsummary

Verify:

netdom query dc
netdom query fsmo
net share

Confirm:

  • New DC appears correctly.
  • FSMO roles are on the new DC.
  • SYSVOL is shared.
  • NETLOGON is shared.
  • DNS is healthy.
  • Replication is healthy.
  • Clients are receiving the correct DNS settings.
  • Authentication and Group Policy are functioning.

Put final validation results in the ticket.

12.

Demote the Old Domain Controller

Only after the new DC has been verified and required services have been migrated:

  • Confirm the old DC holds no FSMO roles.
  • Confirm clients are no longer dependent on its DNS address.
  • Confirm DHCP/firewall settings no longer reference it.
  • Confirm no applications are using it for LDAP, DNS, RADIUS, printing, or other services.
  • Demote the old Domain Controller through Server Manager.

After demotion, reboot and verify Active Directory/DNS cleanup.

Run again from the new DC:

netdom query dc
dcdiag /skip:systemlog
dcdiag /test:dns
repadmin /replsummary

Remove stale DNS records or AD metadata only if they were not cleaned up automatically.

13.

Optional: Raise Domain / Forest Functional Level

Only perform this after the Domain Controller migration is complete and Active Directory health and replication have been verified.

1. Check Current Functional Levels

Open PowerShell as Administrator:

Get-ADDomain | Select-Object DNSRoot,DomainMode
Get-ADForest | Select-Object Name,ForestMode

Before raising the level, confirm all Domain Controllers support the desired level.

Important:

  • Windows Server 2019 and 2022 use Windows Server 2016 as their highest functional level.
  • Windows Server 2025 introduces a Windows Server 2025 functional level.
  • To raise to Windows Server 2025, all Domain Controllers must be running Windows Server 2025.

2. Verify AD Health First

dcdiag /skip:systemlog
dcdiag /test:dns
repadmin /replsummary

Do not raise the functional level if there are unresolved AD or replication problems.


3. Raise the Domain Functional Level

Open:

Server Manager → Tools → Active Directory Domains and Trusts

Expand Active Directory Domains and Trusts.

Right-click the domain name and select:

Raise Domain Functional Level

Select the highest level supported by all Domain Controllers.

Example:

Windows Server 2025

Click:

Raise → OK

Microsoft requires all DCs in the domain to support the level being selected.


4. Raise the Forest Functional Level

In Active Directory Domains and Trusts:

Right-click the top-level:

Active Directory Domains and Trusts

Select:

Raise Forest Functional Level

Select the desired level.

Example:

Windows Server 2025

Click:

Raise → OK

The forest functional level should normally be raised after the domain functional level.

If every DC in every domain is Windows Server 2025, raising the forest to Windows Server 2025 can automatically raise the domains to the Windows Server 2025 functional level as well.


5. Verify

Run:

Get-ADDomain | Select-Object DNSRoot,DomainMode
Get-ADForest | Select-Object Name,ForestMode

Then verify AD health again:

dcdiag /skip:systemlog
repadmin /replsummary

Document the new Domain and Forest Functional Levels in the ticket.