This article outlines the workflow for migrating Google Shared Drives to SharePoint Online document libraries. This migration scenario uses the Shared Document License type. We are not able to support migrations with 2-factor or multifactor authentication. The SharePoint Online destination endpoint does not support GCC High migrations.
Additional scenarios with known behavior and limitations are described at the end of this article.
First time?
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. If you have never performed a migration before, we suggest reading that before beginning the steps outlined in this guide.
MigrationWiz
MigrationWiz is a migration tool, not a syncing tool. 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.
The maximum file size for migration through MigrationWiz varies by migration type and environment, but may never exceed 60GB.
Prerequisites
It is important to highlight the following prerequisites for a smooth migration project.
Licenses
This migration scenario uses the Shared Document License type.
- One license per line item in a project (e.g., per Google Shared Drive to SharePoint Online document library migration).
- Data limit: 50 GB per license.
Purchase licenses by following the steps below.
- 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.
Licenses are released once payment has been received:
- Licenses are available immediately upon payment if you purchase via credit card.
- If you purchase via wire transfer (100+ licenses), the licenses will be available once payment is received and accepted.
- We do not accept purchase orders because of processing overhead.
In both cases, you will be notified by email that payment has been accepted and licenses are available in your account upon notification.
For more information on licensing, including coupon redemption and other licensing types, see our Licensing FAQ.
Limitations
Consider the following limitations when performing this type of migration.
Shared Drives and Restricted Files
For the source shared drive to be migrated, it must have at least one active member with a minimum role higher than the Viewer/Commenter (either a direct user member or as part of a group).
For restricted files to be migrated, it is recommended to have a member of the shared drive with the role of Manager.
Format Conversions
Google proprietary format type file conversions are handled in the following ways:
- Google documents will be converted into Microsoft Word (.docx) format.
- Google spreadsheets will be converted into Microsoft Excel (.xlsx) format.
- Google presentations will be converted to Microsoft PowerPoint (.pptx) format.
- Google drawings are converted into .jpg format. However, those converted documents are not editable, once migrated.
- Google forms are converted to .zip format (containing .html & .csv).
- Google Jamboard will be converted to PDF format. However, those converted documents are not editable, once migrated.
- Google Sites, Maps, and Apps Script are not migrated.
Google proprietary format files (e.g. Google Docs, Sheets, Slides) containing comments may, when converted to Office 365 format, display some additional wordings such as ‘Text Wrapping Break’.
Duplicate Folder Names
The RenameConflictingFiles=1 advanced option is not applicable for duplicate folder names.
Use the RenameConflictingFolders=1 advanced option to enable the migration of folders with duplicated names from Google Drive as a Source into Microsoft destinations. With this AO, folders with duplicated names will be migrated with a suffix.
MigrationWizId Columns at the Destination
As part of the migration, additional columns named MigrationWizId, MigrationWizIdPermissions, and MigrationWizIdVersion are created at the destination as part of the watermark for migrated data.
Similar watermarks will also be added for versions and be displayed as part of the version history.
Versions
- If the source files have an empty file as their version, those versions are not migrated as they are ignored by the migration API.
- Folders and shortcuts in Google Shared Drives do not support versions.
Shortcuts
- Folder Shortcuts may not be migrated if the target folder name has been truncated using the advanced option ShrinkFoldersMaxLength
- Shortcut files when migrated to the destination as a .URL file, will not retain direct permissions applied to target files at the source.
Migrated Items
In the following tabs, you can find the migrated and non-migrate items.
Below you can find a list of migrated items.
- Files
- Folders
- Permissions
- Versions (up to 25)
- Metadata
- File/Folder name
- Modified (based on the modified date of the latest version migrated)
- Modified by
- Created (based on the created date of the latest version migrated)
- The description is migrated to the ‘Title' column at the destination. Migrated value is limited to the existing character limit of the 'Title’ field.
- ‘Creator’ metadata is migrated but in some cases, this value may not be accurate. This is a current limitation without a workaround.
- Shortcuts are migrated as a .URL file to the destination document library - if the target file exists within the same shared drive. Shortcuts are to be migrated as a subsequent migration step after migrating all relevant documents & permissions.
Below you can find a list of non-migrated items.
- For some Google proprietary format files (e.g. Docs, Sheets, Slides), Google allows you to provide a custom name for a version of the file. Such version names are not migrated.
- Minor revisions are available for Google proprietary format files that have not been migrated.
- Google Sites, Maps, and Apps Script files are not supported.
- Embedded video/hyperlinks in Google Docs, sheets, or slides may not be migrated accurately when these Google proprietary files are converted to Microsoft 365 format.
- .TMP files are not supported.
- Shortcuts will not be migrated if the target file doesn’t exist at the destination.
- Versions are not supported by Google Forms.
- Versions of Google drawing files (converted to images) are not migrated accurately. All migrated versions may display the same content as that of the latest version. This is due to a current API limitation, and there is no current workaround.
- Links giving access/Link sharing.
Google Shared Drive (Source) |
SharePoint Online Document Library (Destination) |
Manager |
Full Control |
Content Manager |
Edit |
Contributor |
Edit |
Editor |
Edit |
Commenter |
Read |
Viewer |
Read |
Commenter/Viewer with download disabled |
Restricted View (Only for Documents) |
Prepare the Source Environment
Set up the Google Service Account and API Scopes
Create a Google Project
- Go to the Google Cloud Platform (GCP) Console and sign in as a super administrator. Choose one of the options below:
- If you have not used the Google Cloud Platform Console before, agree to the Terms of Service and click Create Project.
- If you have used Google Cloud Platform Console before, at the top of the screen next to your most recent project name, click Down to open your projects list. Then, click New Project.
- Enter a project name and click Create.
If you cannot create a project here, the create projects permissions might be disabled for your tenant. To check this, navigate to the Google Admin Center, click Apps > Additional Google Services, and select the Google Cloud Platform. Once there, you should see a toggled setting to allow users to create projects.
Enable APIs for the Service Account
- Click Menu > APIs & Services > Library, from the Google Cloud Platform Console.
- Enable the following APIs by selecting the specific API and clicking Enable.
Repeat for each API listed below:- Google Drive API
- Admin SDK
Create the Customer Tenant Service Account
- From the Google Cloud Platform Console, click Menu.
- Click IAM & Admin.
- Click Service accounts.
- Click Create Service Account and enter a name.
- Assign the role of Owner to the new Service Account by selecting Owner from the Role dropdown menu.
- Click Done to complete the service account creation.
- On the ‘Service accounts' page, click the vertical ellipsis under the 'Actions’ column for the service account created above.
- Click the Create key.
- Make sure that JSON is selected and click Create.
- Make sure that you download the key as a JSON file and make a note of the name and location of the file. This JSON file will be used when setting up the source endpoint in the migration project.
- The JSON file must contain information in the following fields: “type”, “private key”, and “client email”. If these mandatory fields are empty, the file upload during the endpoint creation process will fail.
Setting the Scopes for the Migration
- From the Google Cloud Platform Console, click Menu.
- Click IAM & Admin.
- Click Service accounts.
- Find the service account that was set up in Step 3.
- Find the Unique ID field for that service account and copy the ID number. This is the Client ID number that will be used in a later step.
- This field often needs to be added to the view. Click on the Column display options button and add a checkmark to Unique ID, then click OK.
- This Client ID should be considered as confidential as Administrator account passwords and handled securely.
- Go to the G Suite admin page at admin.google.com
- Click on Security > Access and Data Controls > API Controls.
- On the API Controls page, locate the section Domain-wide delegation.
- Click Manage domain-wide delegation.
- Click Add New.
- In the Client Name field, enter the Service Account Unique ID.
- For OAuth scopes, enter the scopes listed below:
- Click Authorize.
Prepare the Azure Environment
Microsoft-provided Azure Storage
We recommend using Microsoft-provided Azure storage for this migration. Refer to Microsoft documentation for more details. If you choose this option, skip to Prepare the Destination Environment.
Own Azure Storage
If you plan to use your own Azure storage, refer to the following steps to prepare your Azure environment. We recommend that you create your Azure storage account in the same Microsoft data center as the destination Office 365 tenant. You do not need to create any Azure containers for this migration.
- Estimate Azure storage costs. This step is optional but is useful to provide the customer with up-front storage costs ahead of time.
- Buy an Azure subscription (or use the free one-month trial, but be aware that this option is only viable if you are performing a very small migration).
Create an Azure Storage Account
You will need to set up a STORAGE (General Purpose v2) account rather than a storage blob.
- Take note of the storage account name and the primary access key. (In Azure, from the storage screen, click Manage Access Keys at the bottom of the screen.) These need to be entered into the MigrationWiz migration project when specifying the destination settings.
To create the Azure storage account, visit the Azure portal and follow the steps below.
- Click New.
- Select Storage.
- Select Storage account.
- Enter a name for your storage account.
- Choose Resource Manager for the Deployment model.
- Choose STORAGE (General Purpose v2).
- Record the storage account name (-accesskey, example: “accountname”) and primary access key (-secretkey, example: “W1RrDfkPNkfYfdVqizMNJjn5mXchwMP5uYBY8MsMqWTA7EubG911+4fZlki0Gag==”)
- In the Replication field, select Locally Redundant Storage (LRS).
- Select the subscription in which you want to create the new storage account.
- Specify a new resource group or select an existing resource group.
- Select the geographic location for your storage account.
- Click Create to create the storage account.
Now the storage account appears in the storage list.
Prepare Destination Environment
Prepare the destination environment by following the steps below:
- Create the SharePoint site and make a note of the site URL where the document libraries are stored.
- Create the document libraries on the destination SharePoint Online site (optional). To learn how to create it, follow the steps from Microsoft: Create your document library.
Save Library Templates
This is an optional step and it is only required if you want to apply templates from your source libraries to your destination libraries. - Ensure all necessary users/groups (including external users, if any) are set up at the SharePoint site and available for your destination document library.
Application Permissions for SharePoint
Continue configuring your destination environment by selecting one of these application permissions options and following the steps to enable permission levels at the destination.
The easiest approach is to use the global admin account set up at the time of tenant creation. However, if you do not wish to use this global admin account during migration, then a new user account can be created instead. This user account needs to have a license assigned that includes SharePoint and be granted Site Collection Administrator privileges to the SharePoint site in the project.
-
Create a user in Microsoft 365 and assign a license that includes SharePoint. For step-by-step instructions, see the Microsoft article Add users individually or in bulk to Office 365.
-
Set the administration privileges. Grant one of the permission levels listed below to the user account to be user as the administrator for the endpoint in the project.
- Global Admin. Microsoft has instructions to set these permissions here: Assign admin roles.
- SharePoint Admin. For specific permissions and project settings to be used with a Site Collection Administrator, see MigrationWiz Permission Requirements.
- Add the admin account, created in step 2, as a Site Collection Admin to the endpoint.
Important
The Global Admin or SharePoint Admin role does not automatically grant Site Collection Admin rights to a SharePoint site. - Go to MigrationWiz-SharePoint-Delegated and consent to the app access when prompted. Once you click on Accept, you will be redirected to the BitTitan login page. This is normal and the page can be closed.
BitTitan uses app-based authentication for SharePoint, providing greater security and reducing the potential of Microsoft throttling. It replaces the previous Microsoft 365 authentication, which has been subject to increased throttling by Microsoft. This app-based authentication method is specific for Microsoft 365 tenants.
- Ensure you are signed in as a Global Admin.
- Go to MigrationWiz-SharePoint-FullControl and consent to the app access when prompted.
- Create a new Security Group named “MigrationWiz” on the Office 365 Admin Portal.
- Create a new user that is not having data migrated in the project. This account does not require any administrator roles to be assigned. If you already have an existing user, that should be fine. This user must have a SharePoint license applied.
- Add the new (or existing) user to the previously created security group as a Member. Adding it as an Owner does not work here.
- Create MigrationWiz project.
- When creating the source and destination endpoints, enter the user credentials in step 4 that correspond with the endpoint to which the user belongs.
- Add the support option UseApplicationPermission=1 to the advanced options of the MigrationWiz project under Support Options.
Steps to remove these permissions are provided below in the Post-Migration section.
MigrationWiz Steps
Set up a Document Migration Project
- Sign in to your MigrationWiz account.
- Click Go To My Projects.
- Click Create Project.
- Click on Document Project to create a new project.
- Click Next Step.
- Enter a project name and select a Customer.
- Click Next Step.
- Select a Source endpoint from the endpoint dropdown menu. Otherwise, follow the steps below in the Create a Source Endpoint section.
- Click Next Step.
- Select a destination endpoint from the endpoint dropdown menu. Otherwise, follow the steps below in the Create a Destination Endpoint section.
- Click Save and Go to Summary.
- Click Save Project.
Create a Source Endpoint
If you have not already added the source endpoint, you need to click New to create the source endpoint and complete the fields below with the proper information.
- Name: Type any name you want for the endpoint. We suggest recording this name somewhere if you have multiple endpoints, as only the top ten will show when searching.
- Endpoint Type: Select Google Shared Drives from the source endpoint type drop-down list.
- Service account credentials: Select the JSON file created for the service account.
- Super Administrator Username: Enter the email for the super administrator for the source tenant.
- Click Add.
Create a Destination Endpoint
If you have not already added the destination endpoint, you will need to click New to create the destination endpoint and complete the fields below to set up the destination endpoint.
- Name: Type any name you want for the endpoint. We suggest recording this name somewhere if you have multiple endpoints, as only the top ten will show when searching.
- Endpoint Type: Select SharePoint Online from the destination endpoint type drop-down list.
- SharePoint Online Tenant URL: Enter the URL for the destination SharePoint tenant. (This is not the SharePoint Admin Center URL. Examples can be found further down in this guide)
- Office 365 Username / Password: Enter the email for the user authorized to run the migration for the destination tenant.
- Use the credentials of the Office 365 user which was added to the MigrationWiz security group for the destination tenant.
- Click Add.
If you are migrating to document libraries under a single destination site, you may prefer to set up the endpoint URL in this format: https://tenant.sharepoint.com/sites/site-name
When your destination endpoint is set up with a SharePoint site URL, the destination line item should only include the library name from the URL. Please note that the actual document library name may be different from the library name value in the URL. You must use the library name value from the URL as shown below.
Add Line Items
There are three options for adding items. Choose which one you will use, then follow the steps below.
Autodiscover
The Autodiscover option can be used to discover Shared Drives available from the Source environment. Once discovered, these can be imported to your project as line items. Associated Shared Drive IDs will also be linked to the line item.
The endpoint Administrator account on the source needs to be assigned the appropriate GSuite license for MigrationWiz to access Google Drive or Google Shared Drives for the Auto Discovery process.
The line item imported to your project will set the destination document library with the same value as that of the source shared drive. Please edit the line items and update the destination with appropriate values or document library path. Please refer to the next section on capturing the destination document Library path.
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.
Quick Add
This option allows you to add items one at a time. You have to enter the Source Shared Drive name, drive ID, and destination document library path for each line item.
- For Source - The drive ID field is optional. However, this drive ID must be entered correctly if the source tenant has a duplicate shared drive name.
- For destination - Please ensure you enter the correct document library path (refer to examples in the next section).
We recommend using the URL's document library path to ensure smooth migration. The following examples show the breakdown of different types of URLs and how to capture the correct document library path:
Example 1: Document library located under a site:
Example 2: Default Document library located under a site:
Example 3: Document library located under a subsite:
Example 4: Default Document library located directly under SharePoint Online root site:
Example 5: Document library located directly under SharePoint Online root subsite:
Example 6: Site and Document Library names may contain special characters, but the URL may not reflect the same. The document library path must be captured correctly from the URL.
Advanced Options
The following advanced options show you some options that will help you to perform or complete a migration.
Support Tab
Consider that each Support Option includes the "=" character and is to be entered under the Support tab in the section named Support Options.
Add additional blank fields for new Support Options by clicking on the "+" button. In case you want to delete a field click the trash can icon.
-
InitializationTimeout=8 This increases the initialization timeout window to eight hours. This value is in hours, up to a maximum of 100 hours. Values above 100 are in milliseconds. This is useful for large migrations. For example:
- InitializationTimeout=2 will increase the timeout to 2 hours.
- InitializationTimeout=8 will increase the timeout to 8 hours.
- InitializationTimeout=14400000 will increase the timeout to 4 hours.
- InitializationTimeout=21600000 will increase the timeout to 6 hours.
-
InvalidCharacterReplacementString=a (where 'a' is the string used to replace unsupported characters in file names)
- SharePoint Online does not allow some characters to be used as file names. The advanced option attempts to replace instances of unsupported characters in file names with the specified string provided by the advanced option. (e.g. a)
- Please refer to Microsoft's documentation for unsupported characters
-
LargeFileMigrations=1 and LargeFileMigrationsTimeout=7200000
Migrations of over 15GB are now supported. These settings will prevent timeout errors when a Speedster import takes more than 10 minutes to complete.
Important
Values for LargeFileMigrations and LargeFileMigrationsTimeout are measured in milliseconds. The value of 720000 is only an example.
- MigrateMembersToStandardGroups=1 Use this AO in case Google Shared Drive shared members are also migrated along with permission mapping to the standard groups.
- RenameConflictingFiles=1 OneDrive/SharePoint does not allow files with duplicate names in the same folder. If your shared drive has multiple files with the same name in a folder, then use this advanced option to handle such conflicting files.
- RenameConflictingFolders=1 Microsoft does not support duplicated names of folders and files, unlike Google Workspaces. Therefore, this AO enables the migration of folders with duplicated names from Google Drive as a Source into Microsoft destinations. With this AO, folders with duplicated names will be migrated with a suffix.
-
ShrinkFoldersMaxLength=200 The maximum path length before shrinking is 200.
- When migrating to SharePoint Online, the path length limitation is a common issue. Refer to this KB to understand how this advanced option works.
- Please note that, if the folder path is too long, even the truncated path using the advanced option may not be short enough to reach the SharePoint path length limit - in such case an error will be logged and the associated item will not be migrated. In this case, our recommendation would be to reduce the number of nested folders at the source to shorten the path.
- UseGoogleAPIV2=1 This configuration avoids migrated items corruption and missing items issues. This is a default option.
-
UserMapping="abc_user1@source-domain->pqr_user5@destination-domain"
- The User Mapping command requires one line per user. Click the + to add additional lines. Replace the UPN addresses in the example with the actual UPN addresses.
-
By default, we match users from the source to the destination based on the prefix in their User Principle Name (UPN). For example, if the user UPN is “name@domain.com”, we match the “name” portion.
-
We recommend using UserMapping="name@source.com->full.name@destination.com" to set the new or correct name for each user when:
-
Multiple people have the same prefix at the destination, for example, name@domain1.com and name@domain2.com.
-
The prefix of a particular user is changed in the destination, for example, name@source.com → name.full@destination.com.
-
Source/Destination Tab
- Set the number of versions to be migrated per project requirement and click Save.
- The minimum number of versions to migrate is 1, the maximum number is 25.
- The default selection for the number of versions is 1. Please update this value as per your requirements.
- Migrating Shared Drive membership permissions to Document Library level permissions.
- By default, Shared Drive membership permissions are not migrated to Document library-level permissions. If you wish to migrate the Shared Drive membership permissions to Document library-level permissions, select Migrate Shared Drive membership permissions to document library permissions and click Save.
Important
Custom permissions at the destination will be retained. However, if a document library inherits from the site, this inheritance is broken, and the destination library permissions are set with migrated permissions (original inherited permissions are lost).
Please consider the following behavior when using the Migrate Shared Drive membership permissions to document library permissions option.- When you use it by itself, all files and folders should “still” contain the three standard groups even when the file or folder inheritance is broken to add individual users to the folder or file.
- When the library level inheritance is broken to add the members to the library, the three standard groups should still be included in the unique permissions on the library. In this case, the three standard groups would remain empty giving the SharePoint admin the option to add users to the three standard groups to grant access to all content, when desired.
Warning
In case you use MigrateMembersToStandardGroups=1 AO, you will not be able to use the Migrate shared drive membership permissions to document library permissions option.
- By default, Shared Drive membership permissions are not migrated to Document library-level permissions. If you wish to migrate the Shared Drive membership permissions to Document library-level permissions, select Migrate Shared Drive membership permissions to document library permissions and click Save.
Verify Credentials
You may verify the credentials of the endpoint and any items in the MigrationWiz project without migrating data or consuming any licenses.
- Open the project containing the line items you wish to validate.
- Select the items you wish to validate.
- Click on 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.
Run Migration
To initiate the migration of document libraries:
- Open the project containing the items you wish to migrate.
- Select the line items to migrate.
- Click on the Start button in your dashboard.
- Select Full Migration from the drop-down list.
- Ensure that the Documents and Permissions checkboxes are selected.
- Click Start Migration.
- Once complete, the results of the migration will be shown in the Status section.
Migrating Shortcuts
- To migrate shortcuts to the destination (as a .url file type), run another pass following the full migration steps above, this time with ‘Step 2’ selected.
- Step 2 should be run only after all relevant documents and permissions have been migrated.
- Please note Step 2 is not mandatory. This should be run only if you wish to migrate shortcuts to the destination (as .url file type).
Multi-pass Behavior
During the first migration pass/run, a file and its associated versions will be migrated to the destination. In subsequent passes, the destination will be overwritten with the latest version only if the source file has a new version at the source.
If the source file content has not been modified in subsequent passes, files & versions will not be migrated, i.e. there will be no change at the destination.
Folders (new, renamed, or existing) will get migrated to the destination.
- New folders, not previously exported, will be created at the destination on the subsequent pass.
- Folders renamed at the source, after the initial migration pass, are treated as new folders and will be created at the destination on the subsequent pass. New files not migrated previously will also get migrated under this folder.
New files created at the source after an initial migration pass (i.e. files without watermarks) will get migrated to a destination under their current source folder on a subsequent pass.
Previously migrated files that are renamed (or any other changes in the file, like metadata) will not get migrated.
If the content of a file migrated by MigrationWiz in the initial pass is updated by users at the destination, then the subsequent migration pass will not overwrite this file even if the source file has a new version available.
Run Retry Errors
Look through the user list and click any red "failed migration" errors. Review the information and act accordingly. For more information review the Document Migrations article.
If problems persist contact Support.
Post-Migration Steps
Own Azure Storage
Delete all the Azure containers used for this migration, if any. This will prevent incurring post-migration Azure costs for these containers. Be careful only deleting the containers created for this migration.
Remove App Permissions
- Remove the newly created user.
- Remove the MigrationWiz Security Group.
Remove the Authentication App
You can remove the Authentication App in Entra Center.
- Sign in to Microsoft Entra admin center.
- Select Microsoft Entra ID.
- Go to Identity > Applications > Enterprise applications, in the left bar of the window.
- In the Manage section, select All applications, look for the application permission you configured (MigrationWiz-SharePoint-Delegated or MigrationWiz-SharePoint-FullControl), and select it.
- Go to Manage > Properties, and select Delete from the properties bar.