In Part I of this guide I’ve explained the process of cross-forest migration and the differences between using ADMT first or using Prepare-MoveReuqest.Ps1 script first, I’ve also explained the migration scenario and the current environment.
Starting from this part we will talk about migration challenges and the best way to address these challenges.
A quick reminder of the current environment:
First Challenge: ADMT First Then Prepare-MoveRequest.Ps1:
As explained in Part I, we need to migrate user accounts and mailboxes from the source forest to the target forest. However in the target forest (tailspin.com) we already have user accounts created manually for users in the source forest (egypt.tailspin.com), so each user in egypt.tailspin.com has two user accounts:
So the main target is we need to use the existing users in the target forest (tailspin.com), the consequences of this decision as follow:
Before going to the detailed steps, let’s see the history and the relation between ADMT and Prepare-MoveRequest.Ps1:
The recommended approach was to copy at least 1 proxy address using ADMT. Even after doing that and using the -UseLocalObject parameter, the script will only copy the 3 mandatory parameters (msExchMailboxGUID, msExchArchiveGUID, msExchArchiveName). This is not very useful as the other mandatory attributes are not copied.
PrepareMoverRequest.ps1:
The PrepareMoveRequest.ps1 script can identify and match existing accounts in the target forest based on their SMTP address (proxyAddresses attribute).
The script will only use the existing target accounts if all the following are true:
If all these are true, the script will copy further attributes needed (especially msExchMailboxGUID) to the target account so that the move request can process the accounts.
If one of the above items is missing, the script will duplicate by creating a new disabled Mail Enabled User (MEU), and no error will be returned, using the script in verbose mode will let you see the details.
Based on that the steps to solve this challenge should be:
1. Select the user or patch of users to be migrated.
2. Delete any Mail Contact for the users in the target forest.
3. Use ADMT to migrate the user account (merge) from source forest to target forest, this is required to get SID History and sync the password.
Once ADMT migration is completed we should have normal user accounts with SIDHistory as the following snapshot:
4. Make the user (or patch of users) Mail Enabled User (MEU) (by running Enable-MailUser), setting ExternalEmailAddress matches the same email address of the user in the source forest (this will be the anchor to associate the user in the target forest with the user in the source forest).
The following snapshot shows how to do it for bulk users using (Import-CSV)
We have a very simple csv file that contains two fields as the following snapshot:
Now we should have a healthy MEU ready for Prepare-MoveRequest, the following snapshot shows the LDAP properties of this user account:
Check the proxyAddresses, mail, and mailNickname.
5. Use Prepare-MoveRequest.Ps1 with –uselocalobject and –overwritelocalobject, so the script will use the existing user account and overwrite the attributes in the target account by the attributes in the source account and most importantly migrate all the required attributes, so the MEU is ready to move the mailbox.
Again we can do it for bulk users by using (Import-CSV), the following snapshot shows the command in verbose mode:
Check the first two lines, local account has been found and the anchor (proxyAddresses) has been used to identify it, then Merge will be done, last line indicates that the process is successfully completed.
Now we have MEU ready to move the mailbox.
In this part we solved the first challenge, in the next part we will continue with the second challenge before moving to the technical steps of the migration.
Exchange 2010 Cross-Forest Migration Step by Step Guide – Part I
Exchange 2010 Cross-Forest Migration Step by Step Guide – Part II
Exchange 2010 Cross-Forest Migration Step by Step Guide – Part III
This information was extremely useful. Thank you very much!