Cross Forest Migration from Exchange 2003 to Exchange 2016 using CodeTwo

April 25, 2016 at 12:03 pm 2 comments

Hi All

After a long  pause I thought add a new post about a recent project that I worked with .The project  was to perform a cross forest migration from Exchange 2003 to Exchange 2016 .We had to bypass the double hop migration ,thus we chose CodeTwo exchange migration to move directly from Exchange 2003 to Exchange 2016.

In this article I have include the steps (not detailed steps as it could be easily found via a simple Google search) which will guide you from Cross Forest Active Directory Migration to Exchange Migration.
NOTE: There was no inter forest mail flow during the migration as we decided to move all the mailboxes over the weekend.

Source Forest:
Windows(2003) , Exchange (2003), Multiple SMTP Domains configured on Exchange 2003

Target Forest:Windows 2012(R2),Exchange(2016), Multiple SMTP Domains configured as the Accepted Domains.

The migration task was broken in to several sequential steps.
1)User Migration (via ADMT)
2)Group  Migration(via ADMT)
3)Workstation Migration (via ADMT)
4)Mailbox Migration(via CodeTwo)

Based on the above we started preparing the prerequisites for the  steps 1-3(Exchange 2016 was already installed on the Target Domain).

– Raised the Forest Functional level and Domain Functional level to
2003 on the Source Domain Controllers.

– Created conditional forwarding on source and target DNS servers
for both domain names to be resolved vice versa.

– Created two way trust between the source and target forest.

– Created a group called ADMTAdmin(on source) and added the
Domain Admin(Target). Thereafter created a group policy for the
Restricted group and added the ADMT Admin Group(This is to
have local administrator rights on all source  forest workstations).

– Created another group policy to disable Windows Firewall.

– Install SQL Express and .NET Framework on the Target DC prior to
installing the ADMT.

– Install Password Export Server on the source Domain Controller
(This is to import the same password).This will require the below
–  Create PAC Key on Target *
(admt key /option:create /
/keyfile:”c:\PES.pes” /keypassword:*)* (use this extracted key
when installing the PES Application)
–  PES service should be run as using target admin account) *

– Finally  Add the Administrator use to remote builtin Administrator
group  vice versa on each forest..

Once the above are done you can start migrating the users,groups and workstations. The ADMT will prepare the workstations to work on the new domain but accessing the same profile.The Outlook profile still will be pointed to the old exchange server.(In order to avoid the password prompt you could grant Mailbox right for the target AD account to his/her mailbox).

Any issues related to ADMT and the required troubleshooting steps were collected from the website:

Issues faced at this stage.

Issue 1:  Users get blank profile with out any data.
Ask the user to log off from the user workstation.
– Run Regedit from your computer. Connect Network Registry to the user workstation.
– Go to HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList
– Go through the Profile list and identify the Source account. Copy the value from the ProfileImagePath key.
– Again go through the Profile list and identify the Target account. Paste the ProfileImagePath key value there.
– Restart the user workstation.

The ProfileImagePath key will be same value for both Source and Target user accounts. This ensures both source and target users will receive the same profile which is stored under C:\Documents and Settings\UserName.

Issue2: Outlook users  will  not be able to access their email as per attached error.
Solution: This is because the autodisover on Exchange 2016 will try to reconfigure the outlook. Thus you could set the autodiscover url to null, and remove the autodiscover DNS record created in the local DNS servers(Target).

Issue3: Failed to change domain affiliation, hr=800704f1 .
Solution: Enabled the  Group Policy on the Target DC as
Default Domain Controller Policy-Computer Configuration-Policies-Admin Templates-System-Net Logon-Allow cryptography —NT 4.0
At this stage all the users ,groups and workstation were migrated to the new target forest but still accessing the old exchange mail flow.Thus we reached the climax of this project which is the exchange migration.  we started preparing the prerequisites for Exchange Migration using CodeTwo
– Installed Windows 2012 R2 and joined to the Source domain.
– Login with the domain administrator account
– Install CodeTwo (please refer the user manual from CodeTwo , but
in my case I skipped all the prerequisites as I was not intended to
maintain any mail flow between two forests.
– Started Exchange Migration in batches and completed successfully.
– Informed the ISP to change the MX toward the new IP pointing to
Exchange 2016 server.
– Did a rescan (CodeTwo command to copy any missed or new
items from the source mailboxes to new mailboxes.

Issue Faced:When migrating with CodeTwo you will receive ErrorMessageSizeExceeded
Solution:  EAC -> Mail Flow-> More Option -> OrganizationTransportSettings -> Change it to more than 100.

Finally we enabled the autodiscover and recreated the autodiscover DNS record. In order to minimize the work involved to recreate the profile in outlook we pushed the below Group Policy entries as it will enable the user to press “new” button on the popup that display when they double click on outlook icon.

For Outlook 2016:


As a policy:


For Outlook 2013:


As a policy:


For Outlook 2010


As a policy:


For Outlook 2007:


As a policy:


2. Once the key is created, right-click in the right pane and click New, click DWORD Value and type in “ZeroConfigExchange” (without the quotes) and then press ENTER.

3. Finally, right-click ZeroConfigExchange, click Modify and then in the Value data box, type 1, and then click OK

In case if the outlook is not prompting create the below entry as well
String Value: PickLogonProfile
Data: 1

All these above Registry entries can be pushed via GroupPolicy.

Hope I have covered all the required steps in brief  and  anybody who wants to perform a cross forest migration using Code Two , can refer this article as guideline for their project.The other fact which I decided to write this article is that I did not find any single article/post  on the Internet which covering all the cross forestmigration  processes staring from Active Directory Objects to Mailboxes.


Cheers !!





Entry filed under: Exchange and O365. Tags: , , , , .

There is no certificates installed on this remote desktop server Exchange 2010 Transport Service starts and stops automatically

2 Comments Add your own

  • 1. user name search  |  August 10, 2018 at 5:28 pm

    I savor, result in I found exactly what I was having a look for.

    You have ended my 4 day lengthy hunt! God Bless you man. Have a
    great day. Bye

    • 2. Muralee  |  August 11, 2018 at 10:58 am

      Wow , I am really happy that somebody have benefited from the articles. Cheers.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed



Follow Hope you like it.. on

Blog Stats

  • 63,244 hits

%d bloggers like this: