IT Knowledge Base

User Tools

Site Tools


This is an old revision of the document!

This page is not a complete process, and does not make sense for every migration scenario. The info here is useful to me, for my migration scenarios, and is used more as a “reminder” of what steps to follow, rather than to be relied on as ultimate truth. Make sure you understand what you're doing and don't blame me if you break it :)

Keep in mind: Office 2016 doesn't connect to Exchange 2007 (eg on SBS 2008) - see Exchange Server Supportability Matrix

Migrating from Exchange to Office 365

You'll need:

  • Office 365 license purchased and access to the VLSC
  • Access to the DNS hosting

License activation

  • License is ordered
  • Get an email with the license details
  • Sign in to VLSC, “View Relationship Summary”
  • If the license isn't in our partner portal, click “Add Open License” and enter the license numbers
  • If the license is listed, get the OSA product key

Domain validation

  • Setup / Quick Start - follow the instructions to verify the domain

AD Sync Setup

Follow my instructions to Setting up AD Sync for Office 365

Pre-Requisites for Migration Wiz

  • Make sure the admin user has a mailbox os per this article

Give appropriate permissions

Run the following to give the Administrator user permissions to the Exchange mailboxes in the source Exchange server:

Get-Mailbox -ResultSize Unlimited | Add-MailboxPermission -AccessRights FullAccess -User MigrationWiz

Run the following to give the admin user permissions required to migrate mailboxes - this affects the destination (Office 365):

$cred = Get-Credential
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri -Credential $cred -Authentication Basic -AllowRedirection
Import-PSSession $session
$Users = Get-Mailbox -ResultSize Unlimited
foreach ($user in $users)
    Add-MailboxPermission -Identity $user.SamAccountName -AccessRights FullAccess -Automapping $false -User
Remove-PSSession $session

Migrate the mailboxes

First, set up the connector in Migration Wiz. Then do the following for each mailbox to be migrated:

  1. Add the user to the “Office 365 Users” OU and force a full DirSync
  2. Grant the user a license in the Office 365 Portal
  3. Send the user an email to force it to create their mailbox (if their mailbox doesn't get created for ages - and you're sure you didn't sync the msExchMailboxGuid attribute, try removing the license, waiting 5 minutes, and re-assigning the licence)
  4. After the mailbox is created, re-run the PowerShell script above to give the Office 365 admin user full permissions to all mailboxes
  5. Add the source and destination email addresses in Migration Wiz, and initiate the migration

Then after all of the mailbox data has been migrated, you're ready to plan the cutover.

  1. Set everyone's primary address correctly in Office 365 Portal
  2. Get the MX record details ready, and set the TTL to 300

Now for the cutover:

  1. Give the staff access to OWA. On the day of cutover, all staff will log in to OWA to get new email, and old email will be available within Outlook. Note they won't have their signatures set up. Send around an email first about how to set up a signature
  2. Do another sync for each mailbox in MigrationWiz
  3. Change the MX records
  4. Confirm inbound and outbound mail flow works within Office 365 OWA
  5. Do a final sync within MigrationWiz
  6. Disable Exchange AutoConfig using instructions below
  7. Go around to each computer and enter the new Office 365 settings into Outlook. Note that they'll start pulling down email into the OST file - you'll need to plan for the bandwidth requirement
  8. Maybe even do another sync in MigrationWiz the next day. It can't hurt.

Disable Exchange AutoConfig

  1. Log into one of your on-premises Exchange 2007 or 2010 servers
  2. Open EMS (Exchange Management Shell)
  3. Remove the Autodiscover Service Internal URI:
    1. Run the following cmdlet - Get-ClientAccessServer This will query the environment and return the value of the actual, main CAS (Client Access Server) server for the environment.
    2. From the results in step 3, run: Set-ClientAccessServer –Identity “CASxx” –AutoDiscoverServiceInternalUri $NULL – where “CASxx” is the name of the CAS server that discovered value.
    1. Get-AutodiscoverVirtualDirectory | fl Name, Server, InternalUrl, Identity
    2. Remove-AutodiscoverVirtualDirectory –Identity “Insert identity value here”
  4. Add a DNS record internally, e.g. pointing to
  5. Remove any other “autodiscover” DNS records from the internal DNS server

SMTP relay for printers etc

If using a different server for the SMTP relay:

  1. Configure receive connector in Exchange so that the new relay server is allowed
  2. Reconfigure all printers now, and any applications. This will mean less effort on the changeover day

Otherwise, After you've confirmed that nobody is using Outlook to connect to the Exchange server:

  1. Confirm relay works using telnet
  2. Confirm relay works on printers, apps, etc. No changes should be required. Except maybe turning off authentication

Uninstalling Exchange afterward

Make sure you have done all the steps to remove autodiscover above. You will not be able to run the commands after you remove Exchange, and that may cause problems

Everything below this point is untested. Use at your own risk

  1. Shutdown the exchange server for few days and check if Office 365 users are having issue

If you try the not-manual method, keep this in mind:

Remember you will have to remove mailbox only not the AD account, if you delete the Mailbox it will delete the AD account as well.

Best option you have is, Disable all the Mailbox on the server and let it purge from Disconnected mailbox. If you want to force it instantly then run Clean-Mailbox.


kb/migrating_from_exchange_to_office_365.1533775918.txt.gz · Last modified: 2018/08/09 10:21 by Dan Mundy