Introduction
This article will guide you through the steps for migrating mailboxes from Hosted and On-Premises Exchange servers (versions 2007 and later) to Microsoft 365.
We recommend reading through the complete guide before starting the migration to understand the process, timeline, and prerequisites. You will see notes called out throughout the guide; pay attention to these, as they may provide information to avoid migration failure.
This migration guide contains the necessary steps to perform the actual migration, but there are many steps to preparing for migration. If this is your first time performing a migration, we have created a Migration Planning & Strategy Guide to walk you through planning, set-up, and general migration best practices.
App passwords are not supported for the Microsoft 365 endpoint.
MigrationWiz
MigrationWiz is a migration tool, not a syncing tool. If changes are made at the source after migration, they will not sync to the destination, nor will changes made at the destination sync to the source. We do not have “live” monitoring of changes (as with a sync agent) and we cannot handle scenarios such as conflict resolution without user interaction.
We are not able to support migrations with two-factor or multifactor authentication.
The maximum file size for migration through MigrationWiz varies by migration type and environment, but may never exceed 60GB.
Migrated
- Inbox
- Folders
- Contacts
- Calendars
- Tasks
- Journals
- Notes
- BCC Recipients
- Post (when the destination is Exchange or Microsoft 365)
Not Migrated
- Email templates
- Email flags (if the destination is G Suite)
- Safe Sender/Block Lists
- Mail Settings
- Standalone documents stored in Mailbox Folders or Public Folders (Example: IPM.Document item types)
- System Public Folders
- StickyNote folders
- Public Folder Permissions
Exchange questions and troubleshooting
Our Exchange Mailbox FAQ, Exchange Migration Setup and Planning, and Exchange Mailbox Migration Troubleshooting guides contain a number of common questions and concerns, along with more information, guidance, and steps to resolve issues such as throttling.
DeploymentPro & DMA
BitTitan DeploymentPro is a module of Device Management and the Device Management Agent (DMA) that remotely configures Outlook email profiles after you perform a mailbox migration to Microsoft 365. Exchange environments can have complex AutoDiscover settings, along with UPN and SMTP address mismatches, which can require troubleshooting and reconfiguration before DeploymentPro can be made to work against such environments. We do recommend using DeploymentPro in this scenario.
DeploymentPro is included with the User Migration Bundle license. DeploymentPro cannot be purchased as a standalone service license, and it cannot be added to the single-use mailbox migration license. If you wish to remotely configure Outlook mail profiles using DeploymentPro after a migration, purchase the User Migration Bundle license.
DeploymentPro currently can only officially be used with migration projects where Microsoft 365 is the Destination. If using DeploymentPro with Exchange (either On-Premises or Hosted) as a Destination, then a Proof of Concept should be run first. The DeploymentPro Guide and DeploymentPro FAQ will guide you through the proof of concept, as well as any other DeploymentPro questions, while the DMA Installation and Introduction to DMA articles provide resources and guidance on DMA.
Prepare the Source
You must complete the following steps to prepare your Source environment for the migration.
- Create and configure permissions
- Confirm access
- Test mailbox access
- Disable throttling limits
Detailed instructions can be found in the accordions below.
If you are migrating from an Hosted Exchange provider, ask the provider to create an account for migration purposes (e.g., named MigrationWiz) and grant full access rights to each mailbox, by running this PowerShell script against the account called MigrationWiz:
Get-Mailbox -ResultSize Unlimited | Add-MailboxPermission -AccessRights FullAccess -User MigrationWiz
- Some Hosted Exchange providers allow this access to be granted via their web portal. In this case, you could log in to each mailbox via their portal and then grant the migration account (e.g., MigrationWiz) to have read/write access to each mailbox. This is laborious and time-consuming, and so it is preferable that the Hosted Exchange provider run the PowerShell script above, particularly if you have a large number of users.
- Some Hosted Exchange Providers will not grant this access. If that is the case, then you can request credentials from your end users during the migration. The exact steps for this are provided under Running a Migration without Administrative Access in the KB article MigrationWiz - Credentials & Authentication
If this is a very large project, the best results will be achieved by setting the project to use impersonation at the Source.
MigrationWiz uses delegation by default to log in to individual user mailboxes using administrative credentials specified on the connector. However, MigrationWiz also supports another elevated access mode called impersonation.
Benefits:
Using impersonation, it is possible to stop sharing the throttling quota and connection limits associated with a single administrative account. Instead, the throttling quota of each user is used to log in to each user mailbox.
Using impersonation means:
- Eliminating most "Connection did not succeed" errors
- Allowing migration of more mailboxes concurrently
- Reducing the impact of throttling and connection limit
To enable the admin account to impersonate users, run this PowerShell command:
New-ManagementRoleAssignment -Role ApplicationImpersonation -User <admin_user_name>
More information about this PowerShell command can be found here.
The below sections will explain how you can locate your OWA URL and test EWS access for your environment. This information will ensure that your migration project is configured properly and will help to prevent failures when performing the migration.
Find your OWA URL
- When setting up Exchange as an endpoint, enter either the OWA URL or the EWS URL.
- There are some instances in which the login page for OWA is different than the actual OWA URL for the mailbox, as you may get redirected to a different server after logging in. To determine the true OWA URL, perform the following:
- Close all browser instances. This ensures that all session state browser cache is flushed.
- Open a new browser instance.
- Navigate to your OWA login page.
- Log in to OWA.
- Once you see the inbox, copy the URL from the navigation bar of the browser. This is the exact OWA URL that should be entered into MigrationWiz.
- Example URLs for OWA:
- https://www.mining88.com
- https://www.mining88.com/owa
- https://www.mining88.com:443
- https://50.249.230.12/owa
Another method for determining the OWA URL is to use the "whatismyipaddress" website to determine the company public IP address, and then add /owa to the end of it.
Now that your OWA URL has been determined, we need to ensure that the username and password combination work. The username and password that you use to log in to OWA is the exact same username and password that you should be entering into MigrationWiz. To determine if your username and password is working, perform the following:
- Close all browser instances. This ensures that all session state browser cache is flushed.
- Open a new browser instance.
- Navigate to the same OWA login page as determined by Step 5 above.
- Log in to OWA. Pay special attention to the login name, i.e.,:
- Email address means "user@example.com" format.
- Domain\user name means "example\user" format.
- User name means "user" format.
- Once you see the inbox, you have successfully logged into OWA. Enter the exact same username and password used into MigrationWiz.
It may be necessary to first grant permissions.
- Browse to https://testconnectivity.microsoft.com. This is a Microsoft-owned tool.
- If using Microsoft 365, click on the Office 365 tab.
- Select Service Account Access (Developers) and click Next.
- Specify the target mailbox email address.
- Specify the service account user name (if using admin credentials on the connector, enter the exact same user name).
- Specify the service account password (if using admin credentials on the connector, enter the exact same password).
- Check Specify Exchange Web Services URL and specify the URL (example: https://server/EWS/Exchange.asmx).
- If using Exchange Server, do not check Use Exchange Impersonation. If you are using Microsoft 365, and using impersonation, do check the box.
- Check Ignore Trust for SSL.
- Click Perform Test.
- Once results are displayed, check the overall result, and also click Expand All.
Throttling
The below section will explain how to remove the throttling policy within your Exchange environment. Removing the throttling policy will help with the performance of your migration.
- Some Hosted Exchange providers will not allow you to alter the throttling policies with your instance.
- Removing the throttling policy will allow for a higher through-put of migrated datat, however, this can impact server resources. Please pay close attention to the server resources when performing your migration and determine if your throttling policy needs to be change to maintain a healthy server resource level.
Disable throttling parameters
- Open the Exchange Management Shell.
- Type the following command and press Enter:
New-ThrottlingPolicy MigrationWizPolicy
- Type the following command and press Enter:
Set-ThrottlingPolicy MigrationWizPolicy -RCAMaxConcurrency $null -RCAPercentTimeInAD $null -RCAPercentTimeInCAS $null -RCAPercentTimeInMailboxRPC $null -EWSMaxConcurrency $null -EWSPercentTimeInAD $null -EWSPercentTimeInCAS $null -EWSPercentTimeInMailboxRPC $null -EWSMaxSubscriptions $null -EWSFastSearchTimeoutInSeconds $null -EWSFindCountLimit $null -CPAMaxConcurrency $null -CPAPercentTimeInCAS $null -CPAPercentTimeInMailboxRPC $null -CPUStartPercent $null
- Enter the following command and press Enter:
Set-Mailbox "MigrationWiz" -ThrottlingPolicy MigrationWizPolicy
- The steps above will remove throttling policies against all user accounts at your Source. You still need to enable impersonation within your MigrationWiz project, so that the admin account can impersonate the user accounts during migrations, and so that the migratons use the bandwidth available to the individual user accounts, rather than just the bandwidth available to the admin account. Follow the directions in the Help Center article Impersonation and Delegation to enable this.
Preparing the Destination
You must complete the following steps to prepare your Destination environment for the migration.
- Configure authentication requirements for EWS
- Create administrator account
- Set up impersonation
- Set up full access
Detailed instructions can be found in the accordions below.
The steps listed below apply to both the source and/or destination tenant when they are Exchange Online, in regards to Exchange Web Services (EWS) in mailbox, archive mailbox, and public folder projects. Use a Global Administrator for the configuration steps.
For setup steps that include images, see under Enabling Modern Authentication for EWS between MigrationWiz and your Exchange Online Tenant in the following KB: Authentication Methods for Microsoft 365 (All Products) Migrations
Important: Failure to perform the steps for your Microsoft 365 endpoints, can result in failed jobs with 401 errors like the following in your project: Http POST request to 'autodiscover-s.outlook.com' failed - 401 Unauthorized
The administrator account being used for the project needs to be excluded from any MFA/2FA policies or Conditional Access policies that can block access for the administrator account. This requirement does not apply to the items or users being migrated in the project.
Configuring Modern Authentication to work with MigrationWiz for mailbox, archive mailbox, and public folder projects in Exchange Online is now the default method after Microsoft discontinued support for Basic Authentication in Exchange Online after December 2022. The following Microsoft documentation outlines this change in more detail. Should you have additional questions on how this change may impact your tenant, please contact Microsoft to assist with providing that information: Deprecation of Basic authentication in Exchange Online
The Azure Security Defaults must also be disabled in the tenant. (This is often enabled by default for all new Exchange Online tenants and there is no workaround for this requirement). For steps on where to enable/disable the Azure Security Defaults, see Enabling security defaults in the following Microsoft documentation. To disable, set Enable Security defaults to No: Security defaults in Azure AD
Modern Authentication Steps- Log in to the Azure AD admin console with a Global Administrator login.
- Select Azure Active Directory in the Azure Active Directory Admin Center.
- Select App Registrations, which is found under Manage.
- Select New Registration at the top of the screen.
- Give the app a distinct name. You can change this later if necessary.
- Select the Accounts in any organizational directory button.
- Under Redirect Uri, select Public Client (mobile & desktop) and set it to urn:ietf:wg:oauth:2.0:oob
- Click Register.
- Go back to App registrations.
- Select the App you just created.
- In the Overview, you will find a ClientId (aka Application) and Directory (Tenant) ID.
- Copy both of these to another application, such as Notepad, for use later in this process.
- Under the Manage menu, select Authentication.
- Set the option Allow public client flows to Yes.
- Click Save.
- From the Manage menu, select API permissions.
- If API permission named User.Read under Microsoft Graph is already present, this can be removed. The Microsoft Graph API is not applicable to this project type and is not used.
- Select Add a Permission.
-
Select APIs my organization uses
-
Scroll down and select Office 365 Exchange Online
-
Then select Delegated Permissions
-
Select EWS
- Check the box under EWS for EWS.AccessAsUser.All.
- Click Add permissions. This permission only allows the OAuth application (MigrationWiz) to be associated with EWS.
-
- Important: This does not grant access to all mailbox data.
-
- Click Grant admin consent.
- Click Yes to confirm the settings.
- In MigrationWiz, select the project that needs to be configured for Modern Authentication.
- Click the Edit Project menu.
- Select Advanced Options.
- Under Support Options enter the ClientID and TenantID information you saved earlier in the following format:
- If enabling Modern Authentication for the Source:
ModernAuthClientIdExport=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ModernAuthTenantIdExport=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- If enabling Modern Authentication for the Destination:
ModernAuthClientIdImport=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ModernAuthTenantIdImport=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- Enter the specific ClientID and TenantID for your tenant in place of the xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
- These options can be entered for either the Source or the Destination, or both, depending on the settings on the tenants.
- These options need to be configured for each MigrationWiz project that needs to have Modern Authentication enabled.
- If enabling Modern Authentication for the Source:
- Run a Verify Credentials to confirm that MigrationWiz can connect using Modern Authentication.
- Click on the item that was verified. There will be a message in the MigrationWiz Migration Information page that Modern Authentication is being used. This message will show in the “Migration Errors” box; however, it is not an error. This is just a message confirming that Modern Authentication is now active and being used for the connection.
Create a Global Administrator or a delegated admin with full access rights or permissions account in Microsoft 365 to be used for migration or use the Global Administrator or delegated admin with full access rights or permissions account for the tenant. In order to have administrative permissions to migrate mailbox data, grant the account permissions on each mailbox.
- Having administrative access to the Microsoft 365 control panel to manage users does not mean the same account has permissions to access all mailboxes for migration.
- Having delegated admin access to accounts does not provide enough access.
Enabling an administrative account the ability to access Microsoft 365 user mailboxes can be performed by adding the Impersonation role or Full Access mailbox permissions. The below steps will explain how to configure the permissions access for both options.
To enable the admin account to impersonate users, run the below PowerShell command:
$cred = Get-Credential
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $cred -Authentication Basic -AllowRedirection
Import-PSSession $session
Enable-OrganizationCustomization
New-ManagementRoleAssignment -Role ApplicationImpersonation -User <admin_user_name>
Remove-PSSession $session
More information about this PowerShell command can be found here.
- Microsoft 365 does NOT allow Impersonation for Small Business plans.
- MigrationWiz uses delegation by default to log in to individual user mailboxes using administrative credentials specified on the connector.
It is highly recommended to use impersonation when migrating from or to Microsoft 365.
Benefits
Using impersonation, it is possible to stop sharing the throttling quota and connection limits associated with a single administrative account. Instead, the throttling quota of each user is used to log in to each user mailbox.
Using impersonation means:
- Eliminating most "Connection did not succeed" errors
- Allowing migration of more mailboxes concurrently
- Reducing the impact of throttling and connection limits
- Using an admin account without assigning a license to it
To manually grant administrative access for migration, execute the following remote PowerShell commands:
$cred = Get-Credential
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $cred -Authentication Basic -AllowRedirection
Import-PSSession $session
Get-Mailbox -ResultSize Unlimited | Add-MailboxPermission -AccessRights FullAccess -Automapping $false -User MigrationWiz
Remove-PSSession $session
- The command needs to be applied each time a new mailbox is created since permissions are set directly on each mailbox. The administrative account will not have access until the permissions are applied.
- In the script above, the username "MigrationWiz" should be replaced with the name of the administrative account that was set up, by following the instructions in this Knowledge Base article.
- This username is the Administrative Username that needs to be entered under the project's Source or Destination settings, within MigrationWiz, when checking the box labeled Use Administrative Login.
Create and License User Accounts
Set up accounts on Microsoft 365 and assign licenses. These can be created in several ways:
- Manually, one at a time. Read the Add users individually or in bulk to Office 365 article from Microsoft for more information.
- By bulk import, via CSV file. Read the Add several users at the same time to Office 365 article from Microsoft for more information.
- By PowerShell script. Read the Create user accounts with Office 365 PowerShell from Microsoft for more information.
Licensing
We recommend that you purchase the User Migration Bundle license for this migration scenario. User Migration Bundle licenses allow multiple types of migrations to be performed with a single license. They also allow DeploymentPro to be used to configure Outlook email profiles.
-
- Sign in to your BitTitan account.
- In the top navigation bar, click Purchase.
- Click the Select button and choose the license type you need.
- Enter the number of licenses you want to purchase. Click Buy Now.
- Enter a Billing address if applicable.
- Click Next.
- Review the Order Summary and enter a payment method.
- Click Place Your Order.
Apply licenses
-
- Select the correct workgroup on the top of the left navigation pane. This is the workgroup that the customer and migration project were created under. Your account must be part of the workgroup if the project was not created under your account.
- On the left navigation pane, click Customers.
- Click the customer that employs the user to whom you want to apply a User Migration Bundle license.
- Click the Users tab at the top of the page.
- Check the box to the left of the email for the user(s) to whom you want to apply a license.
- Click the Apply User Migration Bundle License button at the top of the page. It is recommended that users be added to the Customer page with the vanity domain. Then have the User Migration Bundle Licenses applied, before editing to show the .onmicrosoft domain, if the .onmicrosoft domain will be used for the migration.
- If there is at least one unassigned User Migration Bundle license available for each selected user, click Confirm. Important: If there are no User Migration Bundle licenses currently available to be assigned and your role in the workgroup is Manager or higher, the form that appears provides all the necessary information and will walk you through the steps of purchasing User Migration Bundle licenses.
MigrationWiz Steps
Create a Mailbox Migration Project
- Click Go To My Projects.
- Click Create Project.
- Select a Mailbox migration type. Mailbox projects are used to migrate the contents of the primary user mailbox from the previous environment to the new environment. Most mailbox migrations can migrate email, calendars, and contacts.
- Click Next Step.
- Enter a Project name and select a Customer.
- Click Next Step.
- Select a Source Endpoint from the Endpoint drop-down menu. If an Endpoint has not been created, click New and provide the requested information in the Endpoint creation flyout window.
- Select a Destination Endpoint from the Endpoint drop-down menu. If an Endpoint has not been created, click New and provide the requested information in the Endpoint creation flyout window.
- Click Save and Go to Summary.
Add Accounts (Items)
Add the accounts that will be migrated, also referred to as items, to a project using one of the following options:
- Quick Add: This option allows you to add items one at a time. You have to enter an email address, login name, and password for each user if you didn't enter administrative credentials when setting up the project. You only have to provide an email address if you entered administrative credentials when setting up the project.
- Autodiscover Items: MigrationWiz detects the mailboxes directly at the Source using Autodiscover. For more information, refer to Adding & Managing Items for Migration.
- For mailbox migrations, this feature is only supported when the Source is Exchange 2007 or later.
- This feature is not supported for in-place archive migration projects, even if the Source is Exchange 2007 or later.
- Bulk Add: This option allows you to add multiple items at once by copying and pasting from a spreadsheet or by importing a CSV file. The domain names at the Source and at the Destination might be different. Make sure to provide the right information in the project. If they are different, it's best to modify these in your CSV file, and then use the Bulk Add feature to import the users into the dashboard.
- Select the Project for which you want to perform the bulk import.
- Click Add.
- Click Bulk Add.
- Follow the instructions on the page.
Set Advanced and Support Options
Advanced Options allow you to choose your notifications, filtering, maintenance, licensing, performance, and some configuration options.
Support Options are advanced configurations that make use of PowerShell or code blocks to provide extra options or resources for your migration.
The following options are the most valuable for this migration scenario:
Recommended Options
The following options are most valuable for Exchange to Microsoft 365 migration scenario:
- Set to use impersonation at the Source. Checkmark the Use impersonation at Source box.
- Set to use impersonation at the Destination. Checkmark the Use impersonation at Destination box.
- Set Maximum concurrent migrations. To be very safe, we recommend initially setting this to 5. This means that when all mailboxes are selected and the migration begins, only the first five (5) mailboxes in the list will be migrated (using parallel processing), and then when the first of the five (5) completes, the next in the list will begin migrating, and so on down the list, through to completion of all mailboxes. If the Source server has enough server resources, set this parameter based on the bandwidth guideline of three (3) mailboxes per 1Mbps of bandwidth. Therefore, for example, if there is a 10Mbps connection, we recommend that the maximum concurrent migrations parameter be set to 30.
Run Migration
The following sections will guide you through setting up and launching your migration. Each header is one step, with its component steps below. Follow these steps in order, and read the notes for important information about dependencies or best practices.
Run Verify Credentials
- Open the Project containing items you wish to validate.
- Select the items you wish to validate.
- Click the Start button in your dashboard.
- Select Verify Credentials from the drop-down list.
- Once complete, the results of the verification will be shown in the Status section.
Notify Users
Send out the final notification that the migration is beginning. Include when the migration will start, expected duration, any usage instructions during migration, and any expected steps or notifications for the post-migration timeline.
If using DeploymentPro, refer to the sample email for some sample text and screen shots that can be included in this email.
Pre-Stage Pass
- Select the users.
- Click the Start button from the top, and select Pre-Stage Migration.
- Under the Migration Scheduling section, from the drop-down list, select 90 days ago.
- Click Start Migration.
MX Record Cutover
Change over MX records on the DNS provider's portal. Also, include the AutoDiscover (CName) setting. There are several options for this, based on the size of your project.
Small Projects
Manually set forwards during a migration on a per-user basis, from the individual users' portal. This is only a valid option for a small number of users. Forwards are useful if you are migrating users in batches, and switching some users over to the new Destination before others. Forwards allow for mail coexistence, but not for calendar free/busy coexistence.
- Sign in to your account.
- Click Settings.
- Locate the Forwarding and POP/IMAP tab.
- Click Add a forwarding address.
- Enter the email address to forward to.
- A confirmation email will be sent to the forward mailbox.
- Validate the confirmation by logging in to the forward mailbox.
- Go back to your account.
- Select the forward mode.
We recommend not saving a copy locally, because when you migrate the mailbox to the destination, you will end up with duplicates.
Small to Medium Projects:
Manually set forwards during a migration on a per-user basis, from the admin portal. Forwards are useful if you are migrating users in batches, and switching some users over to the new Destination before others. Forwards allow for mail coexistence, but not for calendar free/busy coexistence.
- Sign into your control panel.
- Click the Organization & users menu.
- Click on the user you wish to provide coexistence for.
- Scroll to the bottom of the User information section.
- Click on the link Add another destination. A new row should have been added.
- Enter the email address of the new mailbox to coexist with. This email address needs to be different than the email address in your source
- Make sure both checkboxes are selected (they already are, by default). There is one in front of the row and another under the column called Change SMTP envelope.
- Unselect the checkbox in front of the row.
- Click Save Changes.
Large Projects
If you are migrating in batches and coexistence is required, you will not be cutting over the MX records until your final batch of users has been migrated, and you must perform two extra steps:
Forwards for Coexistence
If you are not cutting over an entire domain/organization at once by changing the MX records, you can perform a phased migration and set up coexistence by setting up forwards on the mailboxes you wish to migrate.
This can be done via one of the following methods.
Note: We do not recommend setting up Exchange email contacts and a DNS Internal Relay for this, since this will not allow for any Delta Migration passes to be made afterwards because the mailbox no longer exists.
By PowerShell:
Here is how to do this via PowerShell:
Forward email to internal recipient and DON'T save local copy.
PowerShell command syntax:
Set-Mailbox -Identity <Identity> -ForwardingAddress <Office 365 User Email Address> -DeliverToMailboxAndForward $False
- Example: Set-Mailbox -Identity John -ForwardingAddress Suzan@o365info.com -DeliverToMailboxAndForward $False
- Because you set DeliverToMailboxAndForward to false, a copy of the email will NOT be kept in the on-premises mailbox. When setting up forwards, make sure that you do NOT save a local copy before the forward. If you do save a local copy, then when you perform Delta passes, MigrationWiz will migrate the items that it previously hasn’t migrated (and watermarked). This will cause duplicates at your Destination.
- The email address specified on the 'ForwardingAddress' parameter should exist as a Mail Contact.
Through Exchange Management Console
The first step is to create the forwarding objects in your local Active Directory. These forwarding objects will be hidden from the address book, and will be used purely to forward mail for mailboxes that are migrated. Note that these objects are created but not used until you set the forwarding, so these steps can be done ahead of time.
- Download our script to create forwarding objects to a computer that is joined to the domain.
- Modify the script in a text editor (like Notepad) and change the forwarding domain in the top of the script to the temporary domain in the new environment, for example, company.onmicrosoft.com.
- Run the script. You will know the script is complete when you see a confirmation.
The next step is to set up forwarding for mailboxes prior to migration. Before submitting a mailbox for migration, set the forward by performing the following:
- Launch the Exchange Management Console from the Start Menu.
- Expand the Recipient Configuration note from the navigation tree.
- Click the Mailbox node from the navigation tree.
- Right-click on the mailbox to set the forward for and click Properties.
- Click the Mailbox Flow Settings tab.
- Select Delivery Options and click Properties. Do not select the option "Deliver message to both forwarding address and mailbox". This is important to ensure that Delta passes do not cause duplicates. If you do save a local copy, then when you perform Delta passes, MigrationWiz will migrate the items that it previously hasn't migrated (and watermarked). This will cause duplicates on your Destination.
- Click the checkbox Forward to, then click Browse.
- Select the name of the user that contains the prefix (External Forward) in the display name. This is the forwarding object created previously.
- Click OK.
- Click OK.
Setting up Mail Routing on Microsoft 365
For the setup, use PowerShell, because it is faster and easier to set up than working through the Microsoft 365 admin portal. If you need information about how to do this through the Microsoft 365 admin portal, contact Microsoft Support.
- Connect to Exchange Online PowerShell.
- Create the Distribution List (DL):
New-DistributionGroup -Name "BtNotMigratedUsers"
- Add All Users to this DL.
- Create the Connector:
$result = New-OutboundConnector -Name "CBRConnector" -ConnectorType OnPremises -SmartHosts "<fill smart host to source environment>" -UseMXRecord $false -IsTransportRuleScoped $true
- -SmartHosts entry needs to be set to the URL or IP Address of the Source environment server.
- On Exchange 2003, 2007, and 2010, this will be the address of the Transport server.
- On Exchange 2013 and 2016, this will be the address of the Mailbox server, not the Transport server.
- If the Source environment is Hosted, you would need to obtain this address from the Hosted Provider.
- If the Source environment is G Suite, you would need to change the -SmartHosts entry to be the following: -SmartHosts “aspmx.l.google.com”
- Create Rule:
$result = New-TransportRule -Name "PilotInABoxRule" -SentToMemberOf "BtNotMigratedUsers" -RouteMessageOutboundConnector "CBRConnector"
When a user is fully migrated, remove the user from the DL, and they will receive their email in their own Microsoft 365 mailbox.
- There must be a mail-enabled contact on-premises for each user that has been migrated.
- Send email to end users to let them know what to expect for their Outlook profile reconfiguration. If using DeploymentPro, refer to the sample email to send to users before their Outlook profile is reconfigured article for some sample text and screen shots that can be included in this email.
Run Full Pass Migration
- Select the users – you may either select individual users, or select all users in a project by clicking the checkbox to the left of Source Email.
- Click the Start button from the top.
- Select Full Migration. If you want to delay your migration, then select the checkbox marked "Automatically start the migration at", and enter the date and time to have the migration start. To start a migration immediately, you do not need to select the scheduling option.
- Click Start Migration.
Run Retry Errors
Each error logged represents an item that was not migrated. MigrationWiz contains a mode in which you can resubmit the migration to retry failed items. This mode of operation is always free of charge. You may only submit mailboxes in this mode only if they satisfy all of the following conditions:
- The last migration completed successfully.
- The mailbox contains at least one error.
If your mailbox does not satisfy these conditions, you will receive a warning when submitting the migration in this mode and your request will not be fulfilled.
To submit one or more mailboxes in retry mode, perform the following steps:
- Click the Go To My Projects button.
- Select the project that contains the mailboxes that you want to retry.
- Select the mailboxes that have migration errors.
- Click the Start button.
- Select Retry Errors from the menu.
- Click the Retry Errors button.
When errors are repaired, they will disappear from the error log. Some errors may not disappear if the Source item was not reprocessed (due to filters, for example), has been deleted or moved, or if the item failed again.
Final Steps
If not using DeploymentPro, users must create new Outlook profiles, and set up their signatures again, and reattach any PST files that were attached to their previous profile.
Click the pie chart icon in the MigrationWiz dashboard to receive an email containing all the project migration statistics.