Office 365 to On-Premise Hybrid Migration

I recently started the journey of migrating our internal Exchange 2003 server to Office 365. We decided to do the migration ourselves, I cannot say it was smooth and seamless, but it worked. It took me about two weeks before I was actually comfortable enough with my setup to begin moving users, getting everything setup with an array of small steps that can get a little confusing. Really, the only problem that I had was that most of the tutorials people had published were from an older version of Office 365, and none of them looked quite like what I was working with. Everything was there and available, just in different places.

My scenario was that we are currently hosting our SharePoint on 3.0 and our Exchange on 2003. We were still utilizing Public Folders and needed to get away from that and migrate into Shared Mailboxes. We also needed to keep mailboxes on-site during the migration. Basically a cut-over migration was out of the picture.

Configuring the inbound and outbound connectors were fairly straightforward, the only problem that I ran into was that our firewall was blocking the connector from contacting our On-Premise Exchange 2003 server. Once that was straightened out, I changed over the MX and CNAME record according to Microsoft’s documentation. I then verified our domain by creating the TXT file in our DNS.

Once the domain was verified and the connectors were set up, I started by migrating a test mailbox. I tried to think of every option that would need migrated to see what all got migrated. I was a bit surprised that just about everything got migrated. Including mail, subfolders in the inbox, tasks, calendar, etc. The one problem that we have found is that users shared calendars must be re-shared once migrated to O365.

The mailboxes were pretty easy to migrate, the public folders were just cut-over to shared mailboxes and started receiving emails. Overall, it took us about a week to get everyone migrated over.

After getting everyone migrated over, we realized that Outlook was not autodiscovering through our domain, we needed to add a record in our internal DNS that was named “autodiscover” and pointed to

Permissions in O365 is a bit of a challenge, this is where I had to turn to PowerShell, which is pretty easy and well documented online. We are using a company wide master calendar for all users. Users that have full-access get the calendar auto mapped to their Outlook. To set the permissions for “reviewer” PowerShell had to be used, those users did not have the calendar automatically mapped.

We concluded that we wanted to synchronize passwords. ADFS was a little over kill for us, so we opted for MessageOps password sync. I attempted to utilize the trial, but the key was not working. For the low cost we went ahead and purchased the product. Once installed properly and the credentials are verified, it worked. The only issue that I had is that every users password must be changed for MessageOps to intercept it and pass it on to O365. My users were not very fond on changing their password again. But, the product works great!

Overall, Office 365 has been a great purchase for our situation. We could not provide the mailbox size (25GB each), uptime, and redundancy for the cost of O365. It’s nice to finally be able to utilize Outlook externally, and the OWA looks great.