March 13, 2010

Cross Forest Move Mailbox Request from Exchange 2003 to 2010

Filed under: Exchange 2010 — Sathish Kumar Elango @ 4:16 am

This Post is moved to Please click here to visit the Cross forest move mailbox page.

Please feel free to post your queries here.

Regret the Inconvenience. Thank you.



  1. Me too did the same steps and able to move the mailboxes successful. But the question is “Are you able to login to those mailboxes on Target?”

    Comment by Sadiq — March 13, 2010 @ 10:17 am

    • Hi Sadiq,
      Yes I’m able to login to those mailboxes on target successfully. The only thing is you have to make sure “Change password on next logon” is unchecked for the migrated user on target. By default , it will be checked.
      Thank you.

      Comment by Sathish Kumar Elango — March 14, 2010 @ 4:07 am

  2. Hi There,

    I was following your instructions when i came unstuck. the amdt ran and then when i ran
    Enable-MailUser -Identity sdeneystest -ExternalEmailAddress “” it had an error:

    This task does not support recipients of this type. The specified recipient is o
    f type UserMailbox. Please make sure that this recipient matches the required recipient type for this task.
    + CategoryInfo : InvalidArgument: ( [Enable-MailUser],
    + FullyQualifiedErrorId : 43991306,Microsoft.Exchange.Management.RecipientTasks.EnableMailUser

    It appears it has already linked the user object with the legacy mailbox in the 2003 domain. Any ideas?

    Comment by sdeneys — March 30, 2010 @ 7:24 am

    • Hi,
      Try to run Get-User cmdlet. You may see the migrated user displayed with error/warning.
      If yes, then remove the user account from target forest.
      Try to migrate user account from source forest to target forest again.
      Important: While migrating using ADMT, make sure you exclude the properties like
      -> homemdb
      -> homemta
      -> mail
      -> mailnickname
      -> msexch**** ( starts with msexch)
      Once migrated the user account, Try to run Get-User cmdlet. You may see the migrated user displays without error/warning.
      Then continue the move mailbox.
      All the Best 🙂

      Comment by Sathish Kumar Elango — March 31, 2010 @ 5:30 am

      • It Turns out we had duplicate serrer names. When the command contacted to the GC in the source domain, it was referencing a server called exchange. it then used that in netbios, but that resolved to a different server in the target domain, which had been setup only as a cas server. But thanks for your input as it helped

        Comment by sdeneys — March 31, 2010 @ 5:37 am

  3. I’m looking to follow these instructions in the future and am currently in the planning stage. I’m yet to install my target forest. What I need to know is can I get away with just a single trust to move the mailboxes or do I need a 2 way forest trust ? It’s likely we are only going to be able to open a 2 way trust between the source (A) and the target (B) for a number of short periods. Is this going to cause us any issues going forward ? Unfortuneatly this is non negotiable as a result of secuirty requirements between the AD forests and going forward we are only allowed to create a 1 way forest trust with (B) trusting (A) (A forest can access B forest but not vice versa).
    I was hoping we could ADMT all users and groups upfront with the appropriate mail attributes. I believe you can do this with just a one-way trust and then create the 2 way trust for a limited time to move the mailboxes required. The 2 way trust would then be broken and the original 1 way trust re-established. This process would be replicated for future mail migrations.
    Is this possible ?. Any help would be appreciated. Thanks.

    Comment by MigrationPlanner — April 1, 2010 @ 8:25 am

  4. I’m always getting: The critical property ‘ExchangeGUID’ is missing in the mail user object ‘MIGRATEDUSER’. Any idea?

    Comment by Leandro — April 11, 2010 @ 1:13 pm

  5. I was able to run Prepare-MoveRequest with no problems. Now when trying to run New-MoveRequest I get an error with TargetDatabase name. I enter my database name of Mailbox Database 0193130497 and the error comes back Mailbox database does not exist.

    Any help would be greatly appreciated.

    Comment by Carey Roscrow — April 25, 2010 @ 5:17 am

  6. hey i have one quick question about the procedure you had.

    im planning to use ADMT just like what you have written above. i believe by migrating user object with ADMT, mailbox attributes are going to be migrated together. i would like to delete mailbox attribute migrated with ADMT. and then, migrate mailbox attribute with the cmdlet of exch 2010.

    in that case, is there any other required cmdlet other than what you have mentioned above?
    detailed explanation will be appreciated.

    Best Regards,

    Comment by yoyo — April 26, 2010 @ 4:59 am

    • oh, one more thing i forgot to mention.

      what i want to do is migrating attribute only. not maildata itself because im planning to create pst file for the maildata and migrate it locally.

      all i want to do is:
      1. migrate user objects with ADMT, and delete the mailbox attribute.
      2. migrate mailbox attribute with exch2010 cmdlet.


      Comment by yoyo — April 26, 2010 @ 5:03 am

  7. I used ADMT 3.1 to migrate the users from an AD 2003 environment to a Windows 2008 R2 environment

    After ADMT all users are logging into the new domain, I set the External Associated Account in the source domain so the new target domain accounts had access.

    Next step is to migrate / move the mailboxes
    When I run the

    I was expecting the AD 2008 User object to become mail enabled,
    what I am finding is that a new user account is created that is mail-enabled??

    Here is the syntax I am using :

    ./Prepare-MoveRequest.Ps1 -Identity “Distinguished name of User from SourceForest”
    -RemoteForestDomainController $RemoteForestDomainController
    -RemoteForestCredential $Remote
    -LocalForestDomainController $LocalForestDomainController
    -LocalForestCredential $LocalForestCredential
    -TargetMailUserOU “Distinguished name of OU in TargetForest” -UseLocalObject

    Would it be less painful to script exmerge and import the pst files?

    Comment by Mark — May 7, 2010 @ 11:24 am

    • Hi Mark,
      You could exmerge and import the pst files. But you may have problems while replying the old emails back. You may have to change the x400 after importing the pst. Apart from that you will be good. All the Best 🙂

      Comment by Sathish Kumar Elango — May 8, 2010 @ 7:13 am

  8. This works great. Thanks for the excellent post.

    Comment by Geoff — May 13, 2010 @ 7:40 am

  9. Thanks again for this great post.

    ADMT 3.1 is out, does not run on Windows 2008 R2 64 bit, will work on Windows 2008 64 bit nicely. MS is working on ADMT 3.2 which they say will run on 2008 R2.

    I used the Prepare-MoveReqest.Ps1 script. Mailboxes moved nicely. I told users they would have to setup delegates once again.

    We had some Rooms and things that were setup via Outlook with Calendar options for auto accept. I changed them into Exchange 2010 Rooms with the Set-CalendarProcessing for AutoAccept however some of them are not processing the AutoAccept. Seems like permissions on the mailbox itself or Add-MailboxFolderPermission -identity Calendar -User Default -AccessRights Author – seemed to have correct for some but now all.

    Did anyone see that?

    I tried Add-MailboxFolderPermission with Anonymous but that it now allowing it.

    Comment by Mark — June 4, 2010 @ 2:02 am

  10. Hi Elango,
    I have followed your instructions and have excluded HomeMDB, MTA and MsExch attributes and have migrated the users. But when i try the MailEnableUser command then it throws the same error as the one menitoned above in the blog.
    Error: This task does not support recipients of this type. The specified recipient is of type UserMailbox. Please make sure that this recipient matches the required recipient type for this task.

    Comment by Rajiv Lochen — June 15, 2010 @ 11:23 am

  11. I have a question……….I’m testing this process with a email box with about 600MB size and I was wondering how long it is suppose to take for the “Move Request Status” menu to show “Completed”? Any ideas?

    Comment by nock — June 16, 2010 @ 9:20 pm

  12. And also is there a way to see the progression(how many percent) is completed at a certain time while waiting for the move request status to show us it is complete?

    Comment by nock — June 16, 2010 @ 9:22 pm

  13. Hi, thanks for this great post.I tried to move my exchange 2010 domain a to exchange 2010 domain B and its working. But after i add new exchange on same organization with server B i tried to move another mail box than failed. Please help

    Service ‘net.tcp://’
    encountered an exception. Er
    or: MapiExceptionNetworkError: Unable to make connection to the
    server. (hr=0x80040115, ec=-2147221227)
    iagnostic context:
    Lid: 12696 dwParam: 0x721 Msg: EEInfo: Generation Time:
    2010-07-05 09:10:17:838
    Lid: 10648 dwParam: 0x721 Msg: EEInfo: Generating component: 3
    Lid: 14744 dwParam: 0x721 Msg: EEInfo: Status: -2146893022
    Lid: 9624 dwParam: 0x721 Msg: EEInfo: Detection location: 150
    Lid: 13720 dwParam: 0x721 Msg: EEInfo: Flags: 0
    Lid: 11672 dwParam: 0x721 Msg: EEInfo: NumberOfParameters: 4
    Lid: 12952 dwParam: 0x721 Msg: EEInfo: prm[0]: Long val: 9
    Lid: 12952 dwParam: 0x721 Msg: EEInfo: prm[1]: Long val: 6
    Lid: 12952 dwParam: 0x721 Msg: EEInfo: prm[2]: Long val: 0
    Lid: 12952 dwParam: 0x721 Msg: EEInfo: prm[3]: Long val: 1396
    Lid: 45169 StoreEc: 0x80040115
    Lid: 52465 StoreEc: 0x80040115
    Lid: 60065
    Lid: 33777 StoreEc: 0x80040115
    Lid: 59805
    Lid: 52209 StoreEc: 0x80040115
    Lid: 19778
    Lid: 27970 StoreEc: 0x80040115
    Lid: 17730
    Lid: 25922 StoreEc: 0x80040115
    + CategoryInfo : NotSpecified: (0:Int32)
    [New-MoveRequest], MailboxReplicationTransientException
    + FullyQualifiedErrorId :

    Comment by ibnu — July 6, 2010 @ 4:07 am

  14. Amazing article ! 🙂

    Comment by Ganesh — July 12, 2010 @ 8:48 am

  15. First of all grate tutorial 🙂

    I have a domain with a Windows Server 2003 R2 and a Exchange 2003 and I need to migrate all users and their mail boxes to other domain in other forest with a Windows Server 2008 R2 and a Exchange 2010.
    I know that only ADTM 3.2 works with Windows Server 2008 R2.

    In this tutorial it is never mentioned the version of the Windows Server on the target domain, is it relevant or not?

    After this migration can I turn of the trust?

    I am studding this migration for quit a wile and what I read led me to install ADTM 3.2 and SQL in target domain because of version of my Windows.

    I thank any of you for any kind of answer.


    Comment by Marcos — July 25, 2010 @ 1:55 am

  16. How to batch migrate?

    Comment by Alan — July 28, 2010 @ 1:24 am

  17. I am using your method which works great. (I’ve even used that gui script to migrate the mailboxes in my lab.) What I need is the ability to communicate across the forest until the move is done. There are too many to move in a weekend.

    Comment by Markus — August 3, 2010 @ 4:36 pm

  18. We have two domains both have accounts created in them

    DomainA – user logins
    DomainB – Exchange hosted but has an account for each user in DomainA

    We want to migrate from Exch2003 in DomainB to a new setup of Exc2010 in DomainA.

    here is the kicker we cant move the accounts over due to them already having accounts in both domains and the users logins are exactly the same Is there a way to migrate the mailbox over and reattach it to the account in domainA?

    Thanks ahead of time for any help and feel free to email me if needed,

    Comment by Charles — August 18, 2010 @ 5:30 pm

  19. I am trying migrate users and their mailboxes between two domains.

    I am having problems migrating the mailboxes, and I suspect that is because of this warning “WRN1:7857” take a look at the migration Log:

    —– Migration Log part—–

    [Object Migration Section]
    2010-08-23 15:25:51 Starting Account Replicator.
    2010-08-23 15:25:52 CN=test migrat – Created
    2010-08-23 15:25:53 SID for XYZ\migrat added to the SID History of CEE\migrat
    2010-08-23 15:25:54 WRN1:7857 Could not copy following properties for ‘CN=test migrat’.
    2010-08-23 15:25:54 showInAddressBook = CN=Default Global Address List,CN=All Global Address Lists,CN=Address Lists Container,CN=XYZ Exchange Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=xyz,DC=xpto,DC=pt, … A constraint violation occurred.
    2010-08-23 15:25:54 CN=test migrat – Strong password generated.
    2010-08-23 15:25:54 WRN1:7874 Disabled the “password never expires” account option for account ‘CN=test migrat’.
    2010-08-23 15:25:54 Operation completed.
    ——-Log end——–

    To migrate the mailboxes successfully I think I need this 2 properties to be migrated CN=DME Exchange Organization,CN=Microsoft Exchange

    Any idea?

    Comment by João — August 23, 2010 @ 3:48 pm

  20. Will this also work for moving mailboxes from Exchange 2007 to Exchange 2010 across a forest?

    Comment by Mike — September 7, 2010 @ 7:09 pm

  21. Hi, first of all thanks for this great tutorial.
    I have a problem whith my environment, I just have migrated users in cross forest from server 2003 and exchange 2003 to server 2008 r2 and exchange 2010, but my target forest has two child domains:
    Parent domain:
    Child domain:
    Exchange 2010 is member of and the users are in child domain.
    The user’s migration was fine, but when I try to migrate the mailbox’s I got an error.
    When I run enable-mailuser it shows that the user didn´t find it in the domain controller of the parent domain.
    The question is: is it possible to add a parameter at the script in order to find the user in the child domain controller?
    Is it not possible, how can I do the mailbox migration of users?

    Comment by Juan Roja — September 16, 2010 @ 2:26 pm

  22. Good post Sathish,
    I just need to know how the mail will flow to/from old exchange 2003 and Exchange 2010 during the transition period, if the exchange organization name ( is same.
    Do I need any configuration or connectors between 2 servers?

    Comment by sany — October 27, 2010 @ 4:14 pm

    • Hi Sany,
      Its not mandatory. E2K10 Installation Creates a two-way routing group connector between Exchange 2010 and a selected Exchange 2003 bridgehead server.
      Please Ref these for more info.

      Comment by Sathish Kumar Elango — November 4, 2010 @ 4:03 am

      • Hi there great script but my moves are failing with corrupted items , is there a way to add the -baditemlimit to the script , i have tried adding it into

        New-MoveRequest -Identity $TRGDN -RemoteLegacy -TargetDatabase $TrgMDB.SelectedItem -RemoteGlobalCatalog $SrcGC.SelectedItem -RemoteCredential $Remote -TargetDeliveryDomain $TRGFQDN -Baditemlimit 100

        but it ignores this and fails on corrupted items any help appreciated

        Comment by brian — November 13, 2012 @ 4:43 pm

  23. The document has disappeared from the location where it is linked to. Does anyone have any information on this topic – it seems to be fairly impossible.

    Comment by Atonnis — February 20, 2012 @ 8:07 am

  24. Hi There,
    How do you add the switch to list all the mailbox users in AD, when I run your tool it list only few hundred, where do I put the “-ResultSize Unlimited” in your code

    Comment by Jean Arabian — December 25, 2012 @ 3:21 am

RSS feed for comments on this post.

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 )

Google photo

You are commenting using your Google 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

Blog at

%d bloggers like this: