How to Set Up Windows Server 2019 Active Directory Migration
Migrating Active Directory involves moving objects — users, groups, computers, and policies — from one domain or forest to another, or upgrading an existing AD infrastructure to Windows Server 2019 domain controllers. The primary Microsoft tool for cross-domain and cross-forest migrations is the Active Directory Migration Tool (ADMT). This guide covers the complete process of migrating Active Directory using ADMT on Windows Server 2019, including domain consolidation, inter-forest migration, and upgrading existing domain controllers.
Migration Planning Considerations
Before starting any migration, thoroughly assess the source environment. Document all OUs, GPOs, group memberships, trusts, and service accounts. Identify applications that use Kerberos or NTLM and will be affected by SID changes. Determine whether you need SID history to maintain access to resources during the transition period. Audit the source domain’s health:
dcdiag /test:all /s:sourcedc.source.local /v > C:Premigrationdcdiag-source.txt
repadmin /showrepl sourcedc.source.local > C:Premigrationrepadmin-source.txt
repadmin /replsummary > C:Premigrationreplsummary.txt
Installing ADMT 3.2 on Windows Server 2019
Download ADMT 3.2 from the Microsoft Download Center. ADMT requires Microsoft SQL Server (including the free SQL Server Express) for its database backend. Install SQL Server Express first:
Start-Process -FilePath "SQLEXPR_x64_ENU.exe" `
-ArgumentList "/Q /IACCEPTSQLSERVERLICENSETERMS /ACTION=Install /FEATURES=SQLENGINE /INSTANCENAME=ADMT /TCPENABLED=1 /SECURITYMODE=SQL /SAPWD=ADMTdbP@ss!" `
-Wait
Install ADMT:
Start-Process -FilePath "admtsetup32.exe" -Wait
# ADMT will prompt for the SQL Server instance name: .ADMT
After installation, verify ADMT is accessible:
& "C:WindowsADMTadmt.exe" help
Configuring Trusts Between Source and Target Domains
ADMT requires a two-way trust between the source and target domains for inter-forest migrations. Create an external trust from the target domain to the source domain:
netdom trust target.local /domain:source.local /twoway /addtrust /UserO:sourceAdministrator /PasswordO:* /UserD:targetAdministrator /PasswordD:*
Verify the trust is operational:
netdom verify target.local /domain:source.local
Migrating User Accounts with ADMT
Use ADMT to migrate users from the source domain to the target domain. The command-line interface allows scripted migration of large volumes of accounts. Migrate a specific OU of users:
admt user `
/somain:source.local `
/sdomain:source.local `
/tdomain:target.local `
/ou:"OU=MigratedUsers,DC=target,DC=local" `
/users:"OU=Finance,DC=source,DC=local" `
/sidhistory:YES `
/passwordoption:complex `
/translate:inplace `
/logfile:"C:ADMTLogsuser-migration.log"
Migrate a specific list of users from a text file (one samAccountName per line):
admt user `
/sdomain:source.local `
/tdomain:target.local `
/userfile:"C:ADMTLogsusers-to-migrate.txt" `
/ou:"OU=MigratedUsers,DC=target,DC=local" `
/sidhistory:YES `
/passwordoption:complex
Migrating Groups
Migrate security groups including their membership. ADMT handles nested group migration and resolves member references across domains:
admt group `
/sdomain:source.local `
/tdomain:target.local `
/groups:"OU=Groups,DC=source,DC=local" `
/ou:"OU=MigratedGroups,DC=target,DC=local" `
/sidhistory:YES `
/fixmembership:YES `
/logfile:"C:ADMTLogsgroup-migration.log"
Migrating Computer Accounts
Computer migration joins the machines to the target domain and optionally translates local profiles:
admt computer `
/sdomain:source.local `
/tdomain:target.local `
/computers:"OU=Workstations,DC=source,DC=local" `
/ou:"OU=Workstations,DC=target,DC=local" `
/translateroamingprofile:YES `
/logfile:"C:ADMTLogscomputer-migration.log"
Upgrading Domain Controllers to Windows Server 2019
For in-place forest upgrades (not cross-forest migrations), prepare the forest and domain for Windows Server 2019. On the existing Schema Master, run adprep using the Windows Server 2019 installation media:
D:Supportadprepadprep.exe /forestprep
Run domain prep on the Infrastructure Master:
D:Supportadprepadprep.exe /domainprep
D:Supportadprepadprep.exe /domainprep /gpprep
Promote a Windows Server 2019 server to domain controller:
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
Install-ADDSDomainController `
-DomainName "contoso.local" `
-Credential (Get-Credential) `
-InstallDns:$true `
-CreateDnsDelegation:$false `
-DatabasePath "C:WindowsNTDS" `
-SysvolPath "C:WindowsSYSVOL" `
-LogPath "C:WindowsNTDS" `
-NoRebootOnCompletion:$false `
-Force:$true
Raising the Domain and Forest Functional Level
After decommissioning all old domain controllers, raise the functional levels to Windows Server 2016 or 2019:
Set-ADDomainMode -Identity contoso.local -DomainMode Windows2016Domain -Confirm:$false
Set-ADForestMode -Identity contoso.local -ForestMode Windows2016Forest -Confirm:$false
Verify the new functional levels:
Get-ADDomain | Select DomainMode
Get-ADForest | Select ForestMode
Active Directory migration is a high-stakes operation requiring meticulous planning, thorough testing in a lab environment, and a well-documented rollback plan. Migrating users with SID history preserves resource access during the transition, while scripted ADMT operations ensure consistency across large migrations. Always communicate with application owners before migrating service accounts and computer objects.