So I’ve just completed an Exchange 2007 to Exchange 2013 mailbox migration and to be fair the majority of it went smoothly but it wasn’t without a few bumps along the way which I would like to share with you and what I did to get them resolved.

First off, out of the box everything went very smoothly and infact Exchange 2013 installed without a hitch, it was when I went to move the user mailboxes over that a few problems cropped up.

I thought I’d start with a single mailbox so that if there were any issues they would become apparent sooner. I left this migrating or Syncing overnight and checked in the morning, it hadn’t got any further, or hadn’t even started.

After 12 hours, nothing had started migrating or syncing, it’s stuck.
chrome
10/04/2014 , 13:49:48
Late Night Nonsense ‹ Men's Humor - Google Chrome

To find out the actual state of the move we need to open up the EMS (Exchange Management Shell) and type the following command:
get-moverequest | get-moverequeststatistics

After we run this command we can see that the state is in fact Queued and not Syncing as per the above screen shot, naughty Microsoft.
chrome
10/04/2014 , 13:49:48
Late Night Nonsense ‹ Men's Humor - Google Chrome

So why is it Queued?  Basically as per Microsoft a part of the ADPREP process is missing which doesn’t create a Security Group called ContentSubmitters  so we need to create this group and assign a few permissions to them.

In AD (Active Directory) Right Click on the folder where you want to create the group, go to New and then choose Group
Name the Group ContentSubmitters  and make sure it’s a “Security Group”
chrome
10/04/2014 , 13:49:48
Late Night Nonsense ‹ Men's Humor - Google Chrome

Now in AD for this next bit make sure that you have the “Advances Features” enabled, simply go to View at the top in the tool bar and make sure Advanced Features is ticked.
chrome
10/04/2014 , 13:49:48
Late Night Nonsense ‹ Men's Humor - Google Chrome

One that’s done  right click the Group we’ve just created and go to Properties, then go to the Security Tab.
You’ll see that the Administrators Group is in the list of users there but it hasn’t got Full Control so go ahead and tick Full Control in the box below:  (If you have many users in the Administrators Group then you can just add the Administrator user account instead)
chrome
10/04/2014 , 13:49:48
Late Night Nonsense ‹ Men's Humor - Google Chrome

Now we need to add the NETWORKSERVICE account.
Click Add, and Type NETWORKSERVICE then click Check Names, this should add the account to the list.
chrome
10/04/2014 , 13:49:48
Late Night Nonsense ‹ Men's Humor - Google Chrome

With that account highlighted just tick Full Control and then click ok.
chrome
10/04/2014 , 13:49:48
Late Night Nonsense ‹ Men's Humor - Google Chrome

Next we need to restart two Services, the Microsoft Exchange Search and the Microsoft Exchange Search Host Controller.
chrome
10/04/2014 , 13:49:48
Late Night Nonsense ‹ Men's Humor - Google Chrome

Once these have been restarted, we can go back to the Exchange Management Shell and run the get-moverequest | get-moverequeststatistics again.
 chrome
10/04/2014 , 13:49:48
Late Night Nonsense ‹ Men's Humor - Google Chrome

Now we see that things are moving along again with the status now being CreatingFolderHierarchy  Awesome…..well almost.
After about 5 minutes or so things may come to a grinding halt again as mine did when the status changed to StalledDueToCI
chrome
10/04/2014 , 13:49:48
Late Night Nonsense ‹ Men's Humor - Google Chrome

The CI being Content Indexing, so to solve this by turning it off on the Mailbox Database, at least while we migrate the mailboxes across, we’ll turn this back on after it’s completed.

In the Exchange Management Console, go to the Databases and here we can start by getting the Database name as we’ll need it for this next command in the EMS.

Database name:
chrome
10/04/2014 , 13:49:48
Late Night Nonsense ‹ Men's Humor - Google Chrome

Now you’ve got your Mailbox Database name got back to the EMS (Shell) and type:
Set-MailboxDatabase “your mailbox database” -IndexEnabled:$False      and hit enter.
chrome
10/04/2014 , 13:49:48
Late Night Nonsense ‹ Men's Humor - Google Chrome

This will take a few moments but once that’s finished, the last bit is to restart three Services:
Microsoft Exchange Search 
Microsoft Exchange Search Host Controller
Microsoft Exchange Mailbox Replication

Check the status of the sync again with the get-moverequest | get-moverequeststatistics command and you should see some progress now:
chrome
10/04/2014 , 13:49:48
Late Night Nonsense ‹ Men's Humor - Google Chrome

And just to double check, have a look at the status in EMC
chrome
10/04/2014 , 13:49:48
Late Night Nonsense ‹ Men's Humor - Google Chrome

Result, it’s migrating / syncing as it should be.

Just so you don’t forget, once you’ve moved all you mailboxes you will want to turn on the Content Indexing again by running the following command in the EMS (Shell)
Set-MailboxDatabase “Mailbox Database 1382310118” -IndexEnabled:$True

It probably looks worse on paper that it actually is, and if you know your way around AD, Exchange Shell and Console then this should be a breeze.

Hope this gets you out of a sticky quibble.