I am performing cross-forest migration and I am having a had an issue when attempting to perform cross-forest mailbox moves.
A "user" for each "mailbox user" in the source forest exists in the destination forest. These objects were created by Identity Lifecycle Manager. These "user" objects were then prepared to be "mail users" by using the Prepare-MoveRequest.ps1 script for each user using the following syntax:
.\Prepare-MoveRequest.Ps1 -Identity "CN=Paul,OU=User Accounts,DC=source,DC=local" -RemoteForestDomainController "sourceforest-dc1.source.local" -RemoteForestCredential $Remote -LocalForestDomainController "destinationforest-dc01.destination.local" -LocalForestCredential $Local -TargetMailUserOU "OU=FromILM,DC=destination,DC=local" –UseLocalObject
I am trying to perform the mailbox move using the following command:
New-MoveRequest -Identity "CN=Paul,OU=FromILM,DC=destination,DC=local" -RemoteLegacy -TargetDatabase "Mailbox Database 0205912051" -RemoteGlobalCatalog "sourceforest-dc1.source.local" -RemoteCredential $Remote -TargetDeliveryDomain "contoso.com"
When I create the move request, the move request status update does not change, it just stays at "InProgress".
DisplayName Status TargetDatabase
----------- ------ --------------
Tamara InProgress Mailbox Database 0205912051
I bumped up the EventLogLevel for MSExchangeIS\9002 System\Move Mailbox" to medium by using the following powershell command:
Set-EventLogLevel "MSExchangeIS\9002 System\Move Mailbox" -Level Medium
In the destination Exchange 2010 server the following event logs were logged under "Application Log" with the EventLogLevel turned up.
Log Name: Application
Source: MSExchange Mailbox Replication
Date: 2/05/2011 4:27:37 PM
Event ID: 1101
Task Category: Mailbox Move
Mailbox move for 'destination.local/FromILM/Paul' (fcfdc22e-d8d8-44f1-bdfe-140fdbc0d1ca) encountered a transient failure. The operation will be retried (9 out of 60).
Error code: -2147467259
MapiExceptionMailboxInTransit: Unable to open message store. (hr=0x80004005, ec=1292)
Lid: 18969 EcDoRpcExt2 called [length=132]
Lid: 27161 EcDoRpcExt2 returned [ec=0x0][length=132][latency=0]
Lid: 23226 --- ROP Parse Start ---
Lid: 27962 ROP: ropLogon 
Lid: 17082 ROP Error: 0x50C
Lid: 21921 StoreEc: 0x50C
Lid: 27962 ROP: ropExtendedError 
Lid: 1494 ---- Remote Context Beg ----
Lid: 26426 ROP: ropLogon 
Lid: 22787 Error: 0x0
Lid: 13032 StoreEc: 0x8004010F
Lid: 7588 StoreEc: 0x8004010F
Lid: 6564 StoreEc: 0x8004010F
Lid: 2199 StoreEc: 0x50C
Lid: 17097 StoreEc: 0x50C
Lid: 8620 StoreEc: 0x50C
Lid: 1750 ---- Remote Context End ----
Lid: 21817 ROP Failure: 0x50C
Lid: 16585 StoreEc: 0x50C
Lid: 1706 StoreEc: 0x50C
Lid: 20665 StoreEc: 0x50C
Lid: 29881 StoreEc: 0x50C
Log Name: Application
Date: 2/05/2011 4:27:37 PM
Event ID: 9660
Task Category: Logons
User Paul (/o=Destination/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=Paul) failed to log on because their mailbox is in the process of being moved.
In the "System Log" I also noticed the Microsoft Exchange Mailbox Replication service crashing during the move.
Log Name: System
Source: Service Control Manager
Date: 3/05/2011 9:07:13 AM
Event ID: 7031
Task Category: None
The Microsoft Exchange Mailbox Replication service terminated unexpectedly. It has done this 1 time(s). The following corrective action will be taken in 5000 milliseconds: Restart the service.
In the destination domain I have:
- A single Exchange 2010 server with CAS, MB and HT roles installed running SP1, Update Rollout 4.
- Public folders
In the source domain I have:
- A single Exchange 2003 server running Service Pack 2
- An Exchange 2010 SP1 Server running Update Rollout 4 only running the CAS role. This is for MRSProxy.
The problem occured because MRSProxy was not enabled on the Exchange 2010 Client Access Server in the source forest. When mailboxes are moved from one Exchange 2010 forest to another Exchange 2010 forest, the process is handled through Exchange 2010 Client Access Servers using the MRSProxy service. The only port required to be open between the forests for MRSProxy to use HTTPS traffic is port 443. This works even if the source mailboxes are on 2003 or 2007 MBX servers as long as an Exchange 2010 CAS server exists in both organizations.
MRSProxy is not enabled on client access servers by default. You need to enable this on the source forest client access server. To enable this navigate to the following directory on the Exchange 2010 CAS server in the source forest.
Exchange Installation Path\V14\ClientAccess\ExchWeb\EWS\web.config
Open the web.config in a text editor and find where it says under MRSProxyConfiguration
Change IsEnabled to true:
I then rebooted the Exchange 2010 CAS server in the source forest. Upon reboot the cross-forest mailbox moves worked.
The Exchange 2010 CAS Server in the source domain will proxy the move request from the Ex2003 mailbox server.
I also found a TechNet article that explains how to enable this: