Tutorial: Google Drive to OneDrive Migration¶
Status: Authored 2026-04-30 Audience: M365 administrators performing hands-on Google Drive to OneDrive/SharePoint migration using Migration Manager. Duration: 2-3 hours for setup + migration time depending on data volume.
Prerequisites¶
Before starting this tutorial, confirm:
- Microsoft 365 tenant is provisioned with SharePoint Online and OneDrive.
- All target users are created in Entra ID with M365 licenses assigned (including SharePoint and OneDrive).
- OneDrive has been provisioned for all target users (first sign-in or bulk provisioning).
- SharePoint sites are created for shared drive destinations.
- You have Google Workspace super admin access.
- You have M365 Global Administrator or SharePoint Administrator role.
- Google Cloud project with Drive API enabled (from email migration, or new project).
Step 1: Prepare Google Workspace¶
1.1 Enable Google Drive API¶
If not already done for email migration:
- Navigate to console.cloud.google.com.
- Select or create a project.
- Navigate to APIs & Services > Library.
- Search for "Google Drive API" and click Enable.
- Search for "Admin SDK API" and click Enable.
1.2 Create or reuse service account¶
If you created a service account for email migration, you can reuse it. Add these OAuth scopes to the domain-wide delegation:
https://www.googleapis.com/auth/drive.readonly
https://www.googleapis.com/auth/admin.directory.user.readonly
https://www.googleapis.com/auth/admin.directory.group.readonly
If creating a new service account:
- Navigate to IAM & Admin > Service Accounts.
- Click Create Service Account.
- Name:
m365-drive-migration. - Enable domain-wide delegation.
- Create JSON key and download.
- Add the scopes above in Google Admin Console > Security > API controls > Domain-wide delegation.
Step 2: Provision OneDrive for all users¶
OneDrive personal sites must be provisioned before migration. Users get provisioned automatically on first sign-in, but for migration you need them provisioned in advance.
2.1 Bulk provision OneDrive¶
# Connect to SharePoint Online
Connect-SPOService -Url "https://contoso-admin.sharepoint.com"
# Option 1: Request OneDrive provisioning for specific users
$users = @(
"user1@contoso.com",
"user2@contoso.com",
"user3@contoso.com"
)
Request-SPOPersonalSite -UserEmails $users -NoWait
# Option 2: Provision for all licensed users
# Navigate to M365 Admin Center > SharePoint Admin Center > Settings
# Under OneDrive, ensure "Default storage" is set appropriately
2.2 Verify OneDrive provisioning¶
# Check if a user's OneDrive is provisioned
Get-SPOSite -IncludePersonalSite $true `
-Filter "Url -like '-my.sharepoint.com/personal/'" |
Select-Object Url, Owner, StorageQuota |
Format-Table -AutoSize
# Check specific user
$userUpn = "user1_contoso_com" # UPN with underscores
Get-SPOSite -Identity "https://contoso-my.sharepoint.com/personal/$userUpn" -ErrorAction SilentlyContinue
Step 3: Create SharePoint sites for shared drives¶
3.1 Map shared drives to SharePoint sites¶
Review your Google Workspace shared drives and map each to a SharePoint site:
| Google shared drive | SharePoint site URL | Site type |
|---|---|---|
| Finance Team | https://contoso.sharepoint.com/sites/finance | Team site |
| Marketing | https://contoso.sharepoint.com/sites/marketing | Team site |
| HR Policies | https://contoso.sharepoint.com/sites/hr | Team site |
| Project Alpha | https://contoso.sharepoint.com/sites/project-alpha | Team site |
| Company Templates | https://contoso.sharepoint.com/sites/templates | Communication site |
3.2 Create SharePoint sites¶
# Create team sites for shared drives
New-SPOSite -Url "https://contoso.sharepoint.com/sites/finance" `
-Title "Finance Team" `
-Owner "admin@contoso.com" `
-StorageQuota 26214400 `
-Template "STS#3"
New-SPOSite -Url "https://contoso.sharepoint.com/sites/marketing" `
-Title "Marketing" `
-Owner "admin@contoso.com" `
-StorageQuota 26214400 `
-Template "STS#3"
# Or create via Teams (creates SharePoint site automatically)
New-Team -DisplayName "Finance Team" `
-Description "Finance team collaboration" `
-Visibility Private
3.3 Configure external sharing (if needed)¶
# Enable external sharing on sites that had external sharing in Google Drive
Set-SPOSite -Identity "https://contoso.sharepoint.com/sites/finance" `
-SharingCapability ExternalUserAndGuestSharing
# Verify tenant-level sharing settings
Get-SPOTenant | Select-Object SharingCapability
Step 4: Configure Migration Manager¶
4.1 Open Migration Manager¶
- Navigate to SharePoint Admin Center.
- In the left navigation, expand Migration.
- Click Google Workspace.
4.2 Connect to Google Workspace¶
- Click Get started (or Connect to Google Workspace).
- Click Sign in to Google Workspace.
- Sign in with your Google Workspace super admin account.
- Grant Migration Manager permissions to access Drive data.
- Upload the service account JSON key file.
- Migration Manager tests the connection.
- Verify: Connected successfully.
If using PowerShell to configure:
# Migration Manager is primarily a UI tool
# PowerShell alternative uses the SharePoint Migration Tool (SPMT)
# Install SPMT
Install-Module -Name Microsoft.SharePoint.MigrationTool.PowerShell
# Configure Google Workspace connection
# SPMT requires manual configuration through the GUI for Google Workspace
# Migration Manager in SharePoint Admin Center is the recommended approach
Step 5: Scan and assess¶
5.1 Run the scan¶
- In Migration Manager, click Scan.
- Migration Manager scans all user drives and shared drives.
- Wait for the scan to complete (15-60 minutes depending on environment size).
5.2 Review the assessment report¶
The assessment report shows:
| Metric | What to look for |
|---|---|
| Total data size | Ensure OneDrive/SharePoint quotas are sufficient |
| File count | Per-user and per-shared-drive counts |
| File types | Google-native files (Docs, Sheets, Slides) that will convert |
| Large files | Files > 15 GB that may need special handling |
| Long paths | Paths exceeding 400 characters |
| Invalid characters | File names with characters not supported in SharePoint |
| Scan warnings | Files or folders that may not migrate cleanly |
5.3 Address assessment findings¶
For each finding:
| Finding | Action |
|---|---|
| Files with invalid characters | Migration Manager auto-renames; review the rename log |
| Paths too long | Shorten folder names in Google Drive before migration |
| Large files (> 15 GB) | These will migrate but may take longer; no action needed |
| Apps Script files | Will not convert; document for manual rebuild |
| Google Sites | Will not migrate; plan separate SharePoint site rebuild |
| Google Forms | Will not convert; plan rebuild in Microsoft Forms |
Step 6: Configure destination mapping¶
6.1 Map personal drives¶
Migration Manager auto-maps personal Google Drives to OneDrive based on email address matching:
| Source (Google) | Destination (OneDrive) |
|---|---|
| user1@contoso.com (My Drive) | user1@contoso.com (OneDrive) |
| user2@contoso.com (My Drive) | user2@contoso.com (OneDrive) |
Review the auto-mapping and correct any mismatches.
6.2 Map shared drives¶
For each shared drive, select the destination SharePoint site and document library:
| Source shared drive | Destination site | Document library |
|---|---|---|
| Finance Team | https://contoso.sharepoint.com/sites/finance | Documents |
| Marketing | https://contoso.sharepoint.com/sites/marketing | Documents |
| HR Policies | https://contoso.sharepoint.com/sites/hr | Policies |
| Project Alpha | https://contoso.sharepoint.com/sites/project-alpha | Documents |
Configure in Migration Manager:
- Select each shared drive.
- Click Edit destination.
- Enter the SharePoint site URL and document library name.
- Click Save.
Step 7: Run the migration¶
7.1 Start migration¶
- Select the users and shared drives to migrate (start with the pilot group).
- Click Migrate.
- Confirm the migration settings.
- Migration begins in the background.
7.2 Monitor progress¶
The Migration Manager dashboard shows real-time progress:
| Status | Meaning |
|---|---|
| Not started | Queued but not yet processing |
| In progress | Actively copying files |
| Completed | All files copied successfully |
| Completed with warnings | Most files copied; some warnings |
| Failed | Migration failed for this source; check error details |
7.3 Review migration logs¶
For each migrated source, Migration Manager provides:
- Files migrated: Count and size.
- Files skipped: Files not migrated (with reasons).
- Files failed: Files that encountered errors.
- Warnings: Non-critical issues.
Click on any source to view detailed logs and per-file status.
Step 8: Validate migration¶
8.1 File count validation¶
Compare file counts between Google Drive and OneDrive/SharePoint:
# Check OneDrive file count for a user
# Via SharePoint Admin Center > Active sites > user's OneDrive site
# Or via Microsoft Graph
Connect-MgGraph -Scopes "Sites.Read.All", "Files.Read.All"
# Get OneDrive site for user
$user = Get-MgUser -UserId "user1@contoso.com"
$drive = Get-MgUserDrive -UserId $user.Id
Write-Host "Drive quota used: $($drive.Quota.Used)"
Write-Host "Drive item count: Check via UI or Graph API"
8.2 File conversion validation¶
Verify converted files open correctly:
- Open 3 converted Word documents (from Google Docs) --- check formatting, images, tables.
- Open 3 converted Excel workbooks (from Google Sheets) --- check formulas, charts, conditional formatting.
- Open 3 converted PowerPoint files (from Google Slides) --- check layouts, animations, speaker notes.
8.3 Permission validation¶
Test access with multiple user accounts:
- Owner of a shared drive can access the SharePoint site as owner.
- Members can edit files in the document library.
- Viewers can read but not edit files.
- External sharing links work (if applicable).
- Users can access their personal OneDrive files.
8.4 Folder structure validation¶
- Top-level folder hierarchy matches Google Drive.
- Nested folders are preserved.
- No truncation of folder names.
- No orphaned files (files outside their expected folder).
Step 9: Deploy OneDrive sync client¶
9.1 Deploy via Intune¶
# OneDrive sync client is included with Microsoft 365 Apps
# If deploying standalone:
# Option 1: Deploy via Intune Win32 app
# Download OneDrive installer from https://go.microsoft.com/fwlink/?linkid=844652
# Package as .intunewin and deploy via Intune
# Option 2: Deploy via Microsoft 365 Apps deployment
# M365 Admin Center > Settings > Microsoft 365 Apps
# Ensure OneDrive is included in the deployment configuration
9.2 Configure Known Folder Move (KFM)¶
Known Folder Move redirects Desktop, Documents, and Pictures to OneDrive:
# Configure via Intune device configuration profile
# Or via registry keys:
# HKLM\SOFTWARE\Policies\Microsoft\OneDrive
# KFMSilentOptIn (REG_SZ) = <tenant-id>
# KFMSilentOptInWithNotification (DWORD) = 1
# KFMBlockOptOut (DWORD) = 1 # Optional: prevent users from opting out
9.3 Configure Files On-Demand¶
Files On-Demand shows all files in File Explorer without downloading them:
# Files On-Demand is enabled by default in OneDrive sync client
# Verify via Intune or registry:
# HKLM\SOFTWARE\Policies\Microsoft\OneDrive
# FilesOnDemandEnabled (DWORD) = 1
Step 10: Communicate to users¶
10.1 Pre-migration communication¶
Send to all users before migration:
Subject: Your Google Drive files are moving to OneDrive/SharePoint
Your Google Drive files will be migrated to Microsoft OneDrive and SharePoint
starting [date]. Here's what you need to know:
WHAT'S HAPPENING:
- Your personal Google Drive files will move to OneDrive for Business
- Shared drives will move to SharePoint document libraries
- Google Docs will automatically convert to Word documents
- Google Sheets will convert to Excel workbooks
- Google Slides will convert to PowerPoint presentations
WHAT YOU NEED TO DO:
- Install the OneDrive sync client (IT will push this to your device)
- Sign in to OneDrive with your contoso.com credentials
- After [cutover date], use OneDrive/SharePoint for all file storage
YOUR FILES ARE SAFE:
- All files will be copied (not moved) during migration
- Google Drive will remain accessible during the transition
- After [cutover date], use OneDrive as your primary file storage
NEED HELP?
- Training: [link to training resources]
- FAQ: [link to FAQ]
- Support: [help desk contact]
10.2 Post-migration communication¶
Subject: Your files are now in OneDrive/SharePoint
Your Google Drive migration is complete. Here's where to find your files:
PERSONAL FILES:
- Open File Explorer > OneDrive - Contoso
- Or visit https://contoso-my.sharepoint.com
SHARED TEAM FILES:
- [Finance Team]: https://contoso.sharepoint.com/sites/finance
- [Marketing]: https://contoso.sharepoint.com/sites/marketing
- [Your team]: [link]
TIPS:
- Files On-Demand: Files show in Explorer without downloading.
Right-click > "Always keep on this device" for files you need offline.
- Share files: Right-click > Share > enter email address
- Recent files: Office apps show recent OneDrive/SharePoint files
KNOWN CHANGES:
- Google Docs are now Word documents (.docx)
- Google Sheets are now Excel workbooks (.xlsx)
- Google Slides are now PowerPoint files (.pptx)
- Apps Script macros in Sheets did not migrate (IT is rebuilding critical ones)
NEED HELP?
- [help desk contact]
Step 11: Incremental sync and cutover¶
11.1 Incremental sync¶
Migration Manager runs incremental sync automatically. Files created or modified in Google Drive after the initial migration are synced to OneDrive/SharePoint.
- Sync frequency: Automatic (every few hours).
- Direction: Google Drive to OneDrive/SharePoint (one-way).
- Duration: Until you stop the migration task.
11.2 Cutover¶
On the cutover date:
- Verify incremental sync is complete (last sync time).
- Communicate to users: "Use OneDrive/SharePoint starting now."
- Optionally: Set Google Drive to read-only (Admin Console > Apps > Drive > Sharing settings > OFF for creating new files).
- Stop the Migration Manager task.
11.3 Post-cutover monitoring¶
# Monitor OneDrive adoption
# M365 Admin Center > Reports > Usage > OneDrive
# Check for users still accessing Google Drive
# Google Admin Console > Reporting > Apps Usage Activity
Troubleshooting¶
| Issue | Cause | Resolution |
|---|---|---|
| Migration Manager cannot connect | Service account or API issue | Verify service account, domain-wide delegation, and API enablement |
| Files skipped - "unsupported type" | Google Sites, Forms, or other non-file types | Expected; plan separate migration for these |
| Files skipped - "path too long" | Folder nesting exceeds SharePoint 400-char limit | Shorten folder names before migration |
| Permission errors | External users not in Entra ID | Create Entra ID guest accounts for external collaborators |
| Slow migration speed | Google API throttling or large file count | Expected for large environments; migration continues automatically |
| Converted files have formatting issues | Google-to-Office conversion artifacts | Review and manually correct; most issues are cosmetic |
| OneDrive not provisioned | User hasn't signed in or bulk provisioning not run | Run Request-SPOPersonalSite for affected users |
| Storage quota exceeded | OneDrive 1 TB limit reached | Increase quota or move large datasets to SharePoint |