I have to domains, A.de and B.de. They trust each other since some years. A and B both use Exchange 2010. Now, A.de started to use Exchange2013. Now the two domains should get merged, i.e., A.de should also contain all users from B.de and their mailboxes as well.

Therefore, I followed some instructions written on the Microsoft websites (https://docs.microsoft.com/de-de/exchange/architecture/mailbox-servers/prep-mailboxes-for-cross-forest-moves-in-powershell?view=exchserver-2019#parameter-set-of-the-script) - there is a little checkmark in the upper right corner ("auf englisch lesen" - read in english).

So, I checked all the mandatory attributes of a test user. Furthermore, I created an archive in order to fulfill all the required/mandatory attributes. (The only attribute which was not set by default was 'proxyadsress' - I set this attribute as well).

However, I still receive an error message that 'Exception calling "setinfo" with 0 argument(s) - a restriction violation appeared'. The command is run from the exchange server2013 in Domain A.de.

Does anybody has an idea how to check, what to check what is going on?

    [PS] C:\Program Files\Microsoft\Exchange Server\V15\Scripts>.\Prepare-MoveRequest.ps1 -Identity test09@B.de -RemoteForestDomainController dc2.B.de -RemoteForestCredential $remote -LocalForestDomainController dc3.A.de -LocalForestCredential $local
Appending x500:/o=A/ou=Exchange Administrative Group (xxxxxxxxx)/cn=Recipients/cn=testvorname9 testnachname9cb6 to proxyAddresses of New Object in Local forest.
C:\Program Files\Microsoft\Exchange Server\V15\Scripts\Prepare-MoveRequest.ps1 : Error while creating MEU. Error:Error creating mailuser CN=testvorname9 testnachname9,CN=Users,DC=A,DC=de in local forest or setting its mandatory attributes. Error: Ausnahme beim Aufrufen von "SetInfo" mit 0 Argument(en):  "Es ist eine Beschränkungsverletzung aufgetreten.
In Zeile:1 Zeichen:1
+ .\Prepare-MoveRequest.ps1 -Identity test09@B.de -RemoteForestDomainCont ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Prepare-MoveRequest.ps1

0 mailbox(s) ready to move.

Did you enter the correct LocalCredentials(AdminAccount@LocalA.com) and RemoteCredentials(AdminAccount@RemoteB.com) with the commands "$LocalCredentials = Get-Credential" and "$RemoteCredentials = Get-Credential"?

enter image description here

In addition, I tried the follow commands to cross-forest move and it worked: enter image description here

You could try my command to move your mailboxes:

.\Prepare-MoveRequest.ps1 -Identity Test09@B.de -RemoteForestDomainController dc2.B.de -RemoteForestCredential $RemoteCredentials -LocalForestDomainController dc3.A.de -LocalForestCredential $LocalCredentials
| improve this answer | |
  • Thanks,yes, the credentials are stored correctly. For test purposes I also used 'wrong' credentials in a test run. – pallago Apr 3 at 18:18
  • Hi, it's been long time, is there any progress? – Ivan_Wang Apr 13 at 2:56
  • Hi, I did the migration manually since it were only a couple of users. Weighting time and effort this way seemed to be the most appropriate. – pallago Apr 14 at 15:09
  • Hi, if the issue has been fixed, you could mark the solution to help more people who have the same problem. Have a good day:) – Ivan_Wang Apr 15 at 6:50

So, after debugging and having a closer look in the script I modified it a bit such that I can see where the problem occurs during the copy/preparation process.

The problem is the copy of "UserPrincipalName" (UPN). If I skip the copy of the UPN in the script, it will work, i.e., I can execute it without any troubles. I thought I can manually change the UPN in the attributes of the user later, which means I change the attribute of user test09 in Domain A.de to UPN test09@B.de. But: if I change the UPN afterwards and press OK, an error message appears stating that the UPN must be unique in the forest. This is also required I think because I would have 2x the same UPN test09@B.de - 1x in domain A.de and 1x in domain B.de. I am wondering why/how the script actually should work and what is intended to happen with the UPN.

| improve this answer | |
  • Are the two domains in the same forest or in different forests? – Massimo Apr 1 at 21:48
  • Two domains in the same forest. I think the Prepare-MoveRequest.ps1 is for cross-forest, i.e. for 2 forests? – pallago Apr 3 at 18:17
  • Yes, Prepare-MoveRequest is to be used for cross-forest migrations. In a single forest UPNs are global, you can't give the same one two different users even if they are in different domains. – Massimo Apr 3 at 18:56
  • 1
    Also, and most important: Exchange is a forest-wide application; there can be only one in a given forest. Thus you don't have two different Exchanges here... you are actually looking at an upgrade from Exchange 2010 to Exchange 2013, even if they are in dofferent domains. This is a completely different thing from a cross-forest migration. – Massimo Apr 3 at 18:59
  • 1
    Thanks a lot for pointing this out. Concluding, this is one forest and I 'just' need to merge them, which is probably a simpler task. – pallago Apr 3 at 20:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.