The script for this post has been updated with new parameters and requires a new version of the BitTitan PowerShell Module.
Tonight, while working with another consultant, we ran into a migration challenge--how to migrate Google resources and calendars to Office 365 shared mailboxes.
If you only have to do one or two, the guidance at BitTitan's support site works well. An overview:
- Add the resource calendar to an admin account in Google Apps.
- Grant MigrationWiz API access to the Google Account.
- In the MigrationWiz portal, configure a Google Apps to Office 365 Migration Project.
- In the project's Advanced Options, under Support Options, configure a Recipient Mapping.
- Add a mailbox to the project where the source email address is an admin in the Google Apps environment and the target is a Global Admin that has the Impersonation right granted.
- Edit the mailbox.
- Under Folder Filter, enter a RegEx to identify the Calendar folder.
- Under Support Options, configure a FolderMapping entry.
What happens if you have dozens (or in my case, hundreds of them)? Fortunately, MigrationWiz has a PowerShell interface. To use the cmdlets, you will need API access granted on your MigrationWiz account and the MigrationWiz PowerShell module.
For my project, I created a CSV with the following data:
After you have met the prerequisites, you can launch the MigrationWiz Command Shell and execute this script:
Note: You'll want to run this script before you migrate any other mailboxes, since it includes a RegEx exclusion for each resource object at the connector level. This is important, since each mounted resource mailbox or calendar is enumerated as a folder in the user's mailbox. For example, if users Mary@contoso.com and John@contoso.com have a resource calendar named "Team Calendar" opened in their Google mailboxes, it will be migrated to a folder called "Team Calendar" under \Calendar in each target mailbox--in effect, giving each person a point-in-time copy of the calendar. This calendar copy will not be linked to the original, and any changes that users make in that calendar in their personal mailbox will not be reflected in the proper shared calendar. That is one of the reasons this script is so very important.
After the script has built the connectors and mailboxes, log into the MigrationWiz portal and add/update the credentials for the project (GMail as the source and Office 365 as the destination):
- Select Mailbox Migration.
- Click pencil icon (Edit) for the name of the Connector/Project you specified in the -ConnectorName parameter
- Click New.
- Fill out the form, specifying the domain and company name, and then click Save.
- Select Source Settings in the navigation pane, and then click New.
- Add the information for the Gmail Endpoint and click Add Endpoint.
- Select Destination Settings in the navigation pane, and then click New.
- Add the information for the Office 365 endpoint and click Add Endpoint.
- Click Save Project.
10. Select the connector, click the checkbox above the mailboxes to select all mailboxes, and then click Play to start the migration.
You can also go to the TechNet Gallery and download the script to configure the connector and mailboxes. You'll still have to modify the credential objects. 🙂 Once you've done this, you might want to head over to my next Google Migration Post.