Google Drive to OneDrive for Business Migration Guide

This articles outlines the complete task flow for migrating folders and documents from Google Drive to OneDrive for Business. This migration requires an Azure subscription, which maximizes migration speed and bypasses throttling.

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. If you have never performed a migration before, we suggest reading that before beginning the steps outlined in this scenario.

Some item types are not migrated. Click the bar below to expand the full list of what item types are and are not migrated. We are constantly working to create a better migration experience for you, so these items may change.

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.

Items and folders in "Shared with Me" will not be migrated. Only items in "My Drive" will be migrated. To migrate "Shared with Me" items, they must be added to "My Drive".

We are not able to support migrations with two-factor or multifactor authentication. 

Migrated Items

Google Drive


  • Folders
  • Folders you have shared
  • Permissions
  • G Suite native files (except Google Forms)
  • Code Files
  • Documents
  • Images
  • Executables
  • Videos
  • Audio Files
  • Templates (files that the template had been applied to are migrated)
  • Creation Date (Creation date gets changed to the "date of migration" date)
  • Scripts/Macros (Scripts are not converted to macros when going to documents)
  • Document History
  • Comments
  • File/Folder permissions
  • Items/folders in "Shared with Me”. These folders must be added to the user’s “My Drive” and Moderate Mode must be used in order to migrate these items/folders. 
  • Shortcuts (Migrated in Google Drive to Google Drive scenarios only.)

Not Migrated

  • Google Shared Drives (also known as Team Drives) are not supported
    • This is largely because Shared Drives use a different root folder than Google Drive does. Shared Drives also follow different organization, sharing, and ownership models, so the same methods used to migrate Google Drive will not work to migrate Shared Drives.

  • Personal / Free Google Drive is not supported
  • File/folder shortcuts



Permissions Migrations

When OneDrive for Business is configured as the source on a document migration, the only permissions migrated are for files and folders that are shared with specific people.

Files or folders in OneDrive for Business can be shared in one of three ways:

  • With specific people
  • With anyone
  • With an organization

When files or folders are shared with anyone or with an organization, a link is generated for the items. These links are not accounted for by MigrationWiz and are not migrated to any destinations, including other OneDrive for Business accounts.


  • Folders
  • Shared Folders
  • Permissions
  • Code Files
  • Documents
  • Images
  • Forms
  • Executables
  • Videos
  • Audio Files
  • Original metadata and BitTitan migration metadata (author, editor, created time, modified time, name, filesize, type, MigrationWizId, MigrationWizPermissionId)
  • Document attributes (Created by (person) and (time)
  • Modified by (person) and (time))

Not Migrated

  • Creation date (Creation date gets changed to the "date of migration" date)
  • Document history
  • Version history
  • Links giving access
  • Shared permissions for files/folders with symbols in name


Endpoint Change Notification

For Government or Google Drive to OneDrive for Business (China) migrations, select OneDrive (Private Cloud) endpoint types instead of OneDrive in your destination endpoint selection. 

Set up the Azure Environment

If using Microsoft-provided Azure storage, you can skip this section.

  1. Estimate Azure storage costs. This step is optional but is useful in order to provide the customer with upfront storage costs ahead of time. Microsoft Azure Pricing Calculator
  2. Buy an Azure subscription (or use the free one-month trial, and be aware that this option is only viable if you are performing a very small migration). 
  3. Visit Azure Portal to create your storage account. You will need to set up a STORAGE (General Purpose v1 or 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. We recommend that you create your Azure storage account in the same Microsoft data center as the Destination Office 365 tenant. There is no need to create any Azure containers for this migration.
  4. Access key information:
    • -accesskey – This is the Storage account name for the Blob – example “accountname”
    • -secretkey - This is the access key for the Storage account – example “W1RrDfkPNkfYfdVqizMNJjn5mXchwMP5uYBY8MsMqWTA7EubG911+4fZlki0Gag==”

Prepare the Source

Source Endpoint: Google Drive (Own Service Account) Endpoint 

This endpoint requires your tenant service account to be set up and Google APIs be enabled. Follow the steps below to set up your environment for this endpoint. 


  • Subscription to Google Cloud Platform.

  • Google Super Administrator account.

  • Ability to set up a service account on the G Suite tenant.

  • Service account must be set up before the MigrationWiz project is created.

 1: Create a Google Project:

  1. Go to the Google Cloud Platform (GCP) Console and sign in as a super administrator. Choose one of the options below:

    • If you haven't 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.

  2. Enter a project name and click Create.

  3. When the new project creation completes, at the top of the screen next to current project name, click Down icon and select the newly created project name from the list.

 2: Enable APIs for Service Account

  1. From the Google Cloud Platform Console, click Menu > APIs & Services > Library.

  2. Enable the following APIs by selecting the specific API and clicking Enable.
    Repeat for each API listed below:

    • Google Drive API

    • Admin SDK

Make sure that the respective services are enabled within the Google tenant. You can control services for your users using the instructions on this page: Control who can access G Suite and Google Services.

 3: Create Customer Tenant Service Account

  1. From the Google Cloud Platform Console, click Menu > IAM & Admin > Service accounts.

  2. Click + Create Service Account at the top middle of the screen and enter a name.

  3. Click Create.

  4. Assign the role of Owner to the new Service Account by selecting Owner from the Role drop down menu.

  5. Click Continue to move to the next step, then click the Done button.

  6. You will now be returned to the "Service Accounts" page. 
  7. On ‘Service accounts' page, click vertical ellipsis under 'Actions’ column for the service account created above.
  8. Click Create key.

  9. Make sure that JSON is selected as "Key Type."
  10. Click Create.

  11. Click Close.

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 migration endpoint in the Mailbox 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 endpoint creation will fail.


4: Setting the Scopes for the Migration

  1. From the Google Cloud Platform Console:

      1. Click Menu
      2. Click IAM & Admin
      3. Click Service Accounts
      4. Find the service account that was set up in Step 3: Create Customer Tenant Account.
      5. Find and copy the service accounts Unique 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 similar to Administrator account passwords and handled securely.
      6. You will now have one of two options, depending on if the Google UI has been updated in your tenant. 
      Classic Google UI New Google UI
      1. Go to the G Suite admin page at
      2. Click on Security
      3. Click on Advanced Settings
      4. Click Manage API Client Access.

       Once these steps are complete:

      1. In the Client ID field, paste the Unique ID copied above.
      2. In the OAuth scopes (comma-delimited) field, paste all scopes listed below:
        1. For source endpoint :
      3. Click Authorize.

       You should now see your specific Unique ID and the associate scopes listed.

Prepare the Destination Environment

Create an administrator account in Office 365 to be used for migration, or use the global admin account for the tenant. For additional information see:

How do I create an administrator account in Office 365, and then use this during migration?

The easiest approach to follow is to use the global admin account. This was 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 will then need to be granted full access rights to each mailbox user.


  1. Create a user in Office 365: Create user mailbox in Exchange Online
  2. Connect to Exchange Online by using remote PowerShell. For more information about how to do this, go to the following Microsoft website:  Connect to Exchange Online Using Remote PowerShell
  3. Type the following command, and then press Enter:
    Get-Mailbox -ResultSize unlimited -Filter {(RecipientTypeDetails -eq 'UserMailbox') -and (Alias -ne 'Admin')} | Add-MailboxPermission -User -AccessRights fullaccess -InheritanceType all

After you perform these steps, the specified user will be able to access all user mailboxes in Office 365. The user will be able to view the contents of the mailboxes from either Outlook or Outlook Web App.

When migrating mailboxes into Office 365, our best practice is to use impersonation.


To migrate using impersonation:

  1. Sign in to your MigrationWiz account.​
  2. Create your mailbox migration project, make sure to checkmark the box labelled Use Administrator Login, and then fill in the fields marked Administrator Username and Administrator Password, when defining the MigrationWiz project.
  3. From the MigrationWiz Project Dashboard, click on Edit the Project, and select Advanced Options from the drop-down list.
  4. If migrating from Office 365, under Source: Microsoft Office 365, checkmark the box labelled Use impersonation to authenticate.
  5. If migrating to Office 365, under Destination: Microsoft Office 365, checkmark the box labelled Use impersonation to authenticate.
  6. Click Save Options.

MigrationWiz will automatically run a remote PowerShell command to allow the admin account to log in to (impersonate) user mailboxes.

These are the remote PowerShell commands that are executed when a mailbox is submitted for migration:


New-ManagementRoleAssignment -Role ApplicationImpersonation -User <admin_user_name>

To learn how to run these commands man​ually, click here. This is useful if there are delays from Microsoft and the PowerShell command does not run immediately.

  • If using the global admin account, the delegation steps listed above to grant full mailbox access are not necessary, since it already has the necessary rights.
  • If using impersonation, the account that was set up with full access rights to user mailboxes (as described above), or the global admin account, does not need an Exchange Online license granted to it since it is impersonating accounts that do have a license.

The admin account must have a full license assigned to it, in order to be able to provision OneDrive for Business profiles for each user during the migration process. If you encounter the error "Personal Site is not instantiated = PermissionsUserNotLicensed", this means that the OneDrive collection for a user does not exist and the administrator account used for the migration does not have a full license assigned. To resolve this issue, assign a license to the administrator account, and resubmit the migration.

  1. Assign an Office 365 license that contains OneDrive for Business to the admin account that will be used for migration.
    • If users have never used OneDrive before, MigrationWiz will provision OneDrive (SharePoint) profiles for each user being migrated, using the admin account credentials that are entered in the MSPComplete Destination endpoint. However, it does not create the user account; the user account needs to have already been created.
    • MigrationWiz cannot provision a OneDrive profile for blocked users. If a user is blocked, there will be a provisioning or access error.
  2. Set up accounts on Office 365 and assign licenses. These can be created in several ways:
    • Manually, one at a time.
    • By bulk import, via CSV file. Read the Add several users at the same time to Office 365 article from Microsoft for more information. You can use the CSV file that was created under Step 3 of the Prepare the Source Environment section of this guide.
    • By PowerShell script. Read the Create user accounts with Office 365 PowerShell article from Microsoft for more information.
      If you are migrating permissions, the part of the usernames before the "@" sign on Office 365 must match the part of the username on Google Drive before the "@" sign, e.g., on Google Drive must follow the same format before the @ sign on Office 365, and so must also equal "john.smith" on Office 365. The domain name, however, can be different. For more information see:
      How are shared documents are handled when migrating documents?


      When people are working together on projects, they tend to share documents and folders with each other. You will typically want these permissions and shares to be migrated as well. 

      This is the case for most document migrations, including:

      • Google Drive to OneDrive for Business
      • OneDrive for Business to OneDrive for Business

      To ensure these items are migrated successfully, there are a few requirements to take into consideration:

      1. Make sure that the users and groups exist on the Destination prior to migration. If we cannot find the user or group, it is impossible to assign the correct permissions.
      2. Make sure the ​username (before the @) is the same. For example, can become
      3. Make sure the groupname is the same on Source and Destination.
      4. Make sure the administrator domain is the same as the user domain. If your Destination users are, the admin user has to be
      5. We recommend that you create a different administrator account, such as, that is not a user you migrate.


  3. Set up groups on Office 365. If permissions were assigned to groups on Google Drive, and you want these to be migrated, the group names on Office 365 must match the group names on Google Drive. 
  4. Create the required Office 365 CNAME for your domain. Read the Create DNS records at Register365 for Office 365 article from Microsoft for more information.
  5. Set up the app-based authentication in the Office 365 tenant. For specific instructions, see:
    Using App-based Authentication

    BitTitan uses app-based authentication for SharePoint, OneDrive for Business, Office 365 Groups (Documents) migrations, and Teams migrations. This provides greater security and reduces the potential of Microsoft throttling. It replaces the previous Office 365 authentication, which has been subject to increased throttling by Microsoft. This app-based authentication method is specific for Office 365 tenants.

    Important: This app must be added in both tenants (Source and Destination) to reduce the throttling and failures due to Microsoft throttling policy changes.

    If this app is not added on both tenants, MigrationWiz will attempt to create a temporary substitute app in the tenants to be used for authentication. We do not recommend relying on this substitute app creation, as this behavior will only be a temporary transitional behavior within MigrationWiz. To avoid potential interruptions or failures in migrations, it is strongly recommended to set the app up in the tenants.

    Add the App to the tenant

    Step 1:

    Visit the following URL and sign in as the administrator user:

    For Teams migrations:

    For SharePoint or OneDrive migrations:

    Do this for both Source and Destination tenants.

    Step 2:

    Authorize the App for both Source and Destination tenants.


    Click on the Accept button.

    Post Migration Steps

    To remove the BitTitan Enterprise app, perform the following steps:

    1. Launch PowerShell.
    2. Connect PowerShell to Office 365.
    3. Enter the command:


    4. Enter the admin credential in the prompt.
    5. Enter the command:

      Get-AzureADServicePrincipal -SearchString Migration

    6. Look for the ObjectId of the app you want to remove and enter the following command:

      Remove-AzureADServicePrincipal -objectId <the object id>


Licenses are required to run a migration project in MigrationWiz. To obtain license pricing information, or to purchase licenses, click the Purchase button in the top of your MSPComplete or MigrationWiz dashboard.

Payment: We accept credit cards, and wire transfer in certain situations.  

  • When purchasing with a credit card, payment is immediately processed during checkout. If successful, licenses are granted to your account instantly.
  • Wire transfers are available for purchases of 100 or more licenses. If you are purchasing at least 100 licenses, you will be presented an option to purchase via wire transfer during checkout. A wire transfer checkout will generate an invoice with wiring information for your accounts payable department and bank. Once the funds are received by our system, the licenses are granted to your account immediately. 

For this project type it is recommended to use our User Migration Bundle licenses. 

To purchase licenses:

  1. Sign in to your BitTitan account. 
  2. In the top navigation bar, click Purchase.
  3. Click the Select button and choose the license type you need.
  4. Enter the number of licenses you want to purchase. Click Buy Now.
  5. Enter a Billing address if applicable.
  6. Click Next.
  7. Review the Order Summary and enter a payment method.
  8. Click Place Your Order.
  • These licenses enable you to perform multiple migrations of User mailboxes, documents, and in-place archives, and allows the use of DeploymentPro to perform post-migration Outlook email profile configuration.
  • Further information on User Migration Bundle Licenses:
    • User Migration Bundle Licenses have unlimited data available per license.
    • User Migration Bundle Licenses are applied to the customer's users, for whom you'll be performing migrations, and are valid for one year.
    • Read the Licensing FAQ article for more information.

Create New Project

Google Drive (Own Service Account) Endpoint

To create a new migration project:

    1. Click the Go To My Projects button.
    2. Click the Create Project button.
    3. Click on the type of project that you wish to create. For this scenario, select Document. Document projects are used to migrate document drives from one cloud storage to another. Document migrations will maintain the folder hierarchy from the source to the destination.
    4. Enter a Project name and select a Customer. If you have not already added the customer into MSPComplete, you will need to click New to create the Customer.
    5. Click Next Step.
    6. Select a Source Endpoint from the Endpoint dropdown menu or create a new endpoint. Click Endpoints > Add Endpoint > Enter endpoint name > For endpoint type, select Google Drive (Own Service Account).
    7. Click Select File > Navigate to and select the JSON file that contains the Google Service Account key that was saved during the service account setup process.

    8. Enter the Google admin account email address. Please note that this admin email should match the end user domain.

    9. Select the OneDrive for Business Destination Endpoint from the Endpoint dropdown menu. 
    10. Click Save and Go to Summary. If setting up a Tenant to Tenant Coexistence mailbox project, check the box for Enable Tenant to Tenant Coexistence. Otherwise, leave that box unchecked.

Run Migration

Support Options for this migration:

  • InitializationTimeout=8 - This increases the initialization timeout window to eight hours. 
  • IncreasePathLengthLimit=1 - Use this Advanced Option in MigrationWiz to enable the use of 400 characters for the file path name. R
  • RemoveExistingPermissionsWhenUnspecified=1 article for more information.
  • ShrinkFoldersMaxLength=200 (optional, but recommended). For more information see:
    How do I auto shrink the folder path when migrating to OneDrive for Business or SharePoint Online?
    When migrating to OneDrive for Business or SharePoint Online, the path length limitation is a common issue. OneDrive for Business and SharePoint Online have several limitations:
    • A given element (file or folder) cannot be more than 128 characters.
    • A total file path including full path + the file name cannot be more than 260 characters.
    • All of the characters have to be URL encoded, so many characters will actually count as three (3) characters. Therefore, often the limit can be reached faster than expected.
    If encountering errors with "Request URL Too Long" or other issues related to folder names or file paths being too long, enable the Advanced Option ShrinkFoldersMaxLength=n where n is the maximum path length that can be tolerated before shrinking.

    How does this Advanced Option work?

    • This option compresses a folder name by truncating the longest path elements iteratively, until matching the ShrinkFoldersMaxLength requirement. It truncates once it reaches ten (10) characters to try to keep some meaning in the folder name.
    • This option also truncates a folder path element when it is longer than 100 characters (OneDrive for Business or SharePoint Online). Even though the limit is 128, we have to keep a few characters free for special character + filename conflict management.
    • This option truncates files to 100 characters, for the same reason explained above, for folders.
    • This option can be used in conjunction with the Advanced Option "RenameConflictingFiles", which will manage conflicting files after truncation. 
    • Permissions will continue to be resolved properly after the folders and files have been renamed.
    • If a folder cannot fit the limit even after compression (for example, in the case of too many folder levels), MigrationWiz will report an error at the beginning of the migration.
    We recommend that you set this Advanced Option as ShrinkFoldersMaxLength=200
    • This option can be set to a higher or lower value, depending upon what is acceptable to the customer.  The value is dependent upon the following criteria: the file system data, the email address that is a part of the folder path (collection root), and the domain name for permissions, etc. However, using 200 should keep a good security range to manage all edge cases, and it provides a very reasonable limit.
    • This option should be enabled on a case-by-case basis. We recommend that you create a project specifically for when this option is required. Within this project, add the Advanced Option: ShrinkFoldersMaxLength=200 and then move mailboxes that get "path too long" errors into this project. It is not recommended to use it on every mailbox by default, as many mailboxes should be below the limit and being too aggressive may cause truncation, while normal migration may actually succeed. 
    • If a former migration has been performed without the option on, then the storage will need to be reset at the Destination, otherwise, both file system structures will appear at the Destination.
    • If a user modifies the Source file system folder structure (for example, by renaming, removing, or creating a new folder) between two passes using this Advanced Option, the dynamic mapping may be totally different and the Destination may have two different file systems represented.
    • If multiple folders are truncated at 10 characters in the same parent folder, they may end up being merged into a single one if the first ten (10) characters are identical.
  • DocumentBrowsingMode=Moderate For more information see: Google Drive Migrations FAQ
  • RenameConflictingFiles=1 For more information see: RenameConflictingFiles=1
    Error: Cannot create 'filename' because another file exists with the same name

    ​​​Cannot create "filename" because another file exists with the same name

    This error occurs because MigrationWiz attempted to migrate a file with a name that already exists at the Destination. The Destination environment doesn't support multiple files sharing the same name.
    You can either:
    • Rename the file in error at the Source to prevent the duplicate file name.


    • Activate the Advanced Option RenameConflictingFiles=1 to automatically rename conflicting files. This option will rename the files by adding a unique hash at the end of the original filename.
    You will need to reset the statistics of your item(s) before you resubmit the migration:
    Reset Items
    To reset the statistics of one or more items in the project:
    1. Sign in to your MigrationWiz account.
    2. Click Go to My Projects.
    3. Click the name of the project in the list.
    4. Select the items you want to reset statistics for.
    5. Click the Reset Items button in the top navigation bar.
    6. Do not select "Reset errors only for the selected items." if you need to reset the migration statistics completely.
    7. Click Reset Items.

    You will know the reset was successful when all migration data for the selected users will be blank or returned to '0'.

    Learn how to set an Advanced Support Option​ for your project or item(s):​
    How do I add support options to a project or to a single item?


    In the Support Options section of MigrationWiz, you can set options for:

    • A project, which affects all items in the project.
    • A single item, which affects only that item in a project.

    To set Support Options for a project:

    1. Open the project in MigrationWiz.
    2. Click Edit Project from the top and select Advanced Options.
    3. Under the Support section, enter the support option you wish to set.
    4. Click the + icon to add more than one support option.
    5. Click Save.

    To set Support Options for a single item:

    1. Open the project in MigrationWiz.
    2. Click the Edit Item icon to the right of the item that you wish to edit.
    3. Under the Support section, enter the support option you wish to set.
    4. Click the + icon to add more than one support option.
    5. Click Save Item


  • If the migration project is a long-term project, it may be necessary to add an additional Advanced Option for use during the final migration pass to verify the contents of previously migrated items. For more information, contact Support.
  • There are no spaces on either side of the "=" sign, and the entries are case-sensitive, so pay special attention to the capital letters in the commands detailed above.
  • MapPermissionEmailByPairsInProject=1Permissions generally cannot be migrated unless the prefix of the mail address is the same in the source and the destination. However, choosing Support Option MapPermissionEmailByPairsInProject=1 will allow permissions to be migrated without identical mail addresses.
  • Set the Advanced Option to send a notification to end users after the migration pass completes. Notifications are not mandatory.
  • Notifications > Send successful migration and notification to: > Source email address (if users are still using G Suite Gmail) or Destination email address (if users are already using Office 365).
    • Customize notification email. Checkmark the Customize "successful migration" email box. Add your own customization text and company name to this email.
    • Notifications are not mandatory for a successful migration.  Notifications should only be set up before the final pass. If performing a single, Full pass, set this up now. If you are following a Pre-Stage migration strategy, only set this up prior to the final Full (Delta) pass.


Remove the Authentication App

To remove the BitTitan Enterprise app, perform the following steps:

  1. Launch PowerShell.
  2. Connect PowerShell to Office 365.
  3. Enter the command: Connect-AzureAD
  4. Enter the admin credential in the prompt.
  5. Enter the command: Get-AzureADServicePrincipal -SearchString Migration
  6. Look for the ObjectId of the app you want to remove and enter the following command: Remove-AzureADServicePrincipal -objectId <the object id>

Post-Migration Steps

  1. To prevent users from inadvertently logging in and using their Google Drive accounts, decommission the Google Drive user accounts, or change their passwords.
  2. Notify users once the migration has completed. If you set the MigrationWiz Advanced Option for Notifications, they will receive an email upon migration completion.
  3. Assist them with setting up access to their OneDrive for Business accounts, and setting up their synchronization settings.
  4. Provide training on OneDrive for Business.
  5. Delete all the Azure containers used for this migration. This will prevent incurring post-migration Azure costs for these containers. Be careful to only delete the containers created for this migration.
Was this article helpful?
3 out of 5 found this helpful