Microsoft 365 Tenant-to-Tenant Migration: Tools, Scripts & Approaches (2025)
A complete landscape of native tools and third-party solutions for Microsoft 365 tenant-to-tenant migrations, including reusable PowerShell scripts and execution patterns. Covers Exchange Online (tenant-to-tenant mailbox migration), OneDrive and SharePoint (cross-tenant), Microsoft Teams (teams, channels, messages), Planner/Bookings/Stream, and identity with Microsoft Entra ID (cross-tenant sync and B2B). Includes decision matrices, performance and compliance considerations, mail and chat coexistence, and official links.
Need help choosing the best tenant-to-tenant migration approach?
At MSAdvance, we help you select the right toolset, orchestrate scripts, and execute your migration with tight control over risk, timelines, and cost.
Ways to migrate between Microsoft 365 tenants
- Native-only: maximum compatibility and lowest cost. Requires heavy scripting and adherence to service limits.
- Third-party platforms: accelerate execution with better reporting, retries, and metadata preservation. Licensing by object/GB/user.
- Hybrid approach: native for Exchange Online and OneDrive; third-party for Teams, Planner, and complex SharePoint restructuring.
- Big-bang vs. waves: a single weekend cutover (less coexistence) vs. weekly waves with controlled coexistence and lower risk.
General recommendation: start with a pilot (1–3%) to measure throttling, permissions, holds, and true run times.
Microsoft native tooling
| Workload | Native option | What it migrates | Key notes |
|---|---|---|---|
| Exchange Online | Cross-tenant mailbox migration (MRS) | Mailboxes, content, rules, archive (as supported) | Trust between tenants, CSV batches. Reliable at high volume. |
| OneDrive | Cross-tenant OneDrive migration | Files and versions, sharing (partial) | SharePoint Admin + PowerShell/PnP. Consider queues and limits. |
| SharePoint | Cross-tenant SharePoint migration / Migration Manager | Sites, libraries, permissions (with caveats) | Works best with aligned taxonomy and the same site features. |
| Teams | Teams cross-tenant migration | Teams, channels, and messages (per current support) | Owner/member mapping and tab/app review. |
| Identity | Entra ID cross-tenant sync + Direct B2B | Users and groups for coexistence | Allows granting permissions before moving data. |
| Stream (in SharePoint) | Move within SPO | Videos | Treat like SPO files; review embeds and links. |
| Planner / Bookings | Limited | Boards/reservations | Often via third-party or automated recreation. |
Validate module versions and limits before each wave; capabilities evolve over time.
Third-party tools (comparison & descriptions)
| Product | Focus | Differentiators | When it fits |
|---|---|---|---|
| ShareGate | SharePoint/Teams/OneDrive | Permission mapping, site refactoring, granular reporting | Restructure SPO/Teams and preserve metadata |
| Quest On Demand Migration | Microsoft 365 suite | Wave orchestration, dashboards, mail coexistence | Large programs with strict audit needs |
| BitTitan MigrationWiz | Mail/Documents/Teams | Pure SaaS, scenario templates, automatic retries | Tight timelines and 100% cloud execution |
| Cloudiway | Multi-platform (M365, Google, Slack→Teams) | Flexible mappings, coexistence, heterogeneous support | Mixed or multi-suite environments |
ShareGate (SPO/Teams/OneDrive)
ShareGate shines in SharePoint Online and Teams when the priority is to preserve structure and permissions while refactoring (e.g., splitting a large site, moving channels between teams, or reorganizing libraries). It offers permission mapping (groups/users), version retention, metadata transformation, and impact analysis. For Teams it can copy teams and channels, reconfiguring common tabs (Planner, OneNote, SharePoint) and producing reports for items requiring manual attention (absolute-URL tabs, bots, connectors).
- Strengths: clear UI, change auditing, detailed pre-checks, strong support for complex SPO structures.
- Limitations: not aimed at Exchange mailboxes; some Teams apps/tabs must be re-linked manually.
- Licensing: typically annual by admin/IT team (not per end user), ideal for ongoing projects or multiple waves.
- When to use: information restructuring, content reshaping, migrations highly sensitive to permissions and metadata.
Quest On Demand Migration (ODM)
Quest ODM is a SaaS platform covering multiple workloads (Exchange, OneDrive, SharePoint, Teams, and identity). It excels at large-scale orchestration: define user waves, track status per workload via dashboards, centralize retries, and manage mail coexistence (contacts, routing, and free/busy with guided setup). It provides auditable reporting and permission controls to maintain compliance—solid when you must coordinate many moving parts under PMO oversight.
- Strengths: end-to-end suite, centralized telemetry, wave templates, coexistence features.
- Limitations: higher cost vs. purely native; less flexibility for very specific SPO transformations.
- Licensing: per user/object and/or per workload; budget buffers for retries.
- When to use: >1,000 users, multiple workloads at once, strong visibility and traceability requirements.
BitTitan MigrationWiz
MigrationWiz is a 100% cloud service aimed at execution speed and simplicity. It offers scenario templates (mailboxes, documents, Teams) and automatic retries for transient errors. Highly competitive when the goal is to move mail and OneDrive quickly with no infrastructure. It provides Teams projects; for SharePoint it’s effective for standard cases, while complex restructuring is often paired with other tools.
- Strengths: quick setup, web UI, solid handling of transient errors, predictable license-based costs.
- Limitations: less fine-grained control for transformations; advanced SPO/Teams scenarios may need extra tooling.
- Licensing: by mailbox/user license or bundled workloads, time-bound; plan license stock for peaks.
- When to use: tight timelines, lean projects, mail/OneDrive focus; easily delegated to a partner.
Cloudiway
Cloudiway stands out for multi-platform versatility. Beyond Microsoft 365 → Microsoft 365, it supports hybrid scenarios (e.g., Google Workspace or Box to Microsoft 365) and Slack to Teams. Its flexible mappings adapt identities, domains, and structures. Often chosen when source/target are heterogeneous or when coexistence must extend beyond mail (e.g., chat and collaboration spaces).
- Strengths: broad connector range, identity/data mappings, support for non-standard scenarios.
- Limitations: steeper configuration curve; invest time in mappings and tests.
- Licensing: per user/workload; review modules per source/target to avoid cost surprises.
- When to use: multi-suite M&A, Google/Slack migrations, extended coexistence needs.
Other options worth a look: AvePoint FLY (SPO/Teams with governance), TransVault (mail archives/legacy), SkyKick (mail/documents with automations). Evaluate support, SLAs, and roadmap.
PowerShell scripts & templates by workload
1) Exchange Online — tenant-to-tenant migration batches
Pattern: prepare tenant trust, create an endpoint, and launch CSV-driven batches (notifications and auto-complete).
# Requirements: Exchange Online PowerShell, permissions in both tenants
Connect-ExchangeOnline
# CSV (batch.csv): EmailAddress,TargetPrimarySmtpAddress
# user1@source.com,user1@target.com
# Endpoint (adjust if applicable)
# New-MigrationEndpoint -Name "CTMM-Endpoint" -RemoteServer outlook.office365.com -ExchangeRemoteMove
$csv = [System.IO.File]::ReadAllBytes(".\batch.csv")
New-MigrationBatch -Name "CTMM-Batch01" -CSVData $csv `
-AutoStart -AutoComplete `
-NotificationEmails "operations@yourcompany.com"
# Tracking & reporting
Get-MigrationBatch | Get-MigrationUser | Get-MigrationUserStatistics -IncludeReport
Add transport rules and connectors for temporary coexistence (see Coexistence).
2) OneDrive — cross-tenant migration with PnP/SPO
# Requirements: SharePoint Online Management Shell / PnP.PowerShell
# onedrive-map.csv: sourceUPN,targetUPN
Connect-SPOService -Url https://contoso-admin.sharepoint.com
Import-Csv .\onedrive-map.csv | ForEach-Object {
Write-Host "OneDrive: $($_.sourceUPN) -> $($_.targetUPN)"
# Example with PnP (schematic; adjust URLs and auth):
# Connect-PnPOnline -Url "https://source-my.sharepoint.com/personal/source_user" -Interactive
# Connect-PnPOnline -Url "https://target-my.sharepoint.com/personal/target_user" -Interactive
# Start-PnPCopy -SourceUrl $srcLib -TargetUrl $dstLib -IgnoreVersionHistory:$false
}
3) SharePoint — inventory & migration queue
# Requirements: PnP.PowerShell
$adminUrl = "https://contoso-admin.sharepoint.com"
Connect-PnPOnline -Url $adminUrl -Interactive
Get-PnPTenantSite -IncludeOneDriveSites |
Select Url,StorageUsageCurrent,Template,LastContentModifiedDate |
Export-Csv .\spo-inventory.csv -NoTypeInformation
4) Teams — export structure & member mapping
# Requirements: MicrosoftTeams
Connect-MicrosoftTeams
$teams = Get-Team
$teams | Select GroupId,DisplayName,Visibility,Archived |
Export-Csv .\teams-structure.csv -NoTypeInformation
# Members per team for mapping
# Get-TeamUser -GroupId <GUID> | Export-Csv .\team-<GUID>-members.csv
5) Identity — account & UPN inventory (Microsoft Graph)
Connect-MgGraph -Scopes "User.Read.All","Group.Read.All"
Get-MgUser -All | Select DisplayName,UserPrincipalName,Id |
Export-Csv .\users.csv -NoTypeInformation
Get-MgGroup -All | Select DisplayName,Id,MailEnabled,SecurityEnabled |
Export-Csv .\groups.csv -NoTypeInformation
6) Mail — contacts & forwarding for coexistence
Connect-ExchangeOnline
Import-Csv .\forward-map.csv | ForEach-Object {
$source = $_.SourcePrimarySmtp
$target = $_.TargetPrimarySmtp
if (-not (Get-MailContact -Filter "ExternalEmailAddress -eq '$target'" -ErrorAction SilentlyContinue)) {
New-MailContact -Name "CT-$($target)" -ExternalEmailAddress $target
}
Set-Mailbox -Identity $source -ForwardingSmtpAddress $target -DeliverToMailboxAndForward $true
}
Add validations, error handling, and retry using Try/Catch and Start-Job/ForEach-Object -Parallel responsibly.
Automation: pipelines, logging & error control
- CI/CD pipelines: GitHub Actions or Azure DevOps to run wave-based scripts with approvals, secure variables (Secret Store/Key Vault), and repeatable runbooks.
- Logging: structured output to CSV/JSON and export to Log Analytics for dashboards (success, failures, GB/h per batch).
- Retries: exponential backoff (3–5 attempts) for throttling or 429/503 errors.
- Parallelism: cap concurrency per service (Exchange/Graph/SPO) to avoid service protection limits.
- Controls: exclusion lists (VIPs), eDiscovery/retention locks, and coordinated maintenance windows.
Coexistence: mail, calendars & chat
- Mail: tenant-to-tenant connectors, transport rules, and selective forwarding by wave; dual delivery for specific cases.
- Calendars: tenant-to-tenant free/busy; recreate critical meetings before final cutover.
- Teams: coexistence via B2B invitations and cross-tenant access; review federation and external messaging policies.
- Domains: move the domain when the source is “clean”; keep historical SMTP aliases for continuity.
Identity & directory: Entra ID cross-tenant
For longer waves or complex integrations:
- Cross-tenant synchronization: replicate users and groups from source to target (selected attributes) to grant permissions before moving data.
- Direct B2B: access without manual invites, with granular policies per source/target organization.
- UPN/domains: use a temporary UPN and promote at the end; update apps that depend on UPN (SSO, Intune, SharePoint).
- Compliance: align retention, eDiscovery, sensitivity labels, and DLP policies before migration.
Performance, limits & best practices
- Throttling: schedule off-peak, distribute by geo, and cap requests per minute.
- Batch size: 50–200 mailboxes per batch depending on size/activity; SPO sites in groups of 5–20.
- Smoke tests: before each wave, validate send/receive, critical OneDrive paths, SPO permissions, and Teams chat.
- KPIs: success ≥ 99%, retries < 1%, expected GB/h, cutover duration, and user satisfaction.
- Rollback: per-wave rollback (forwards, connectors, restoring temporary UPN/SMTP).
Decision matrix: native, third-party, or hybrid?
| Scenario | Recommendation | Why |
|---|---|---|
| < 200 mailboxes and < 2 TB in OneDrive | Native | Low cost, manageable scripts |
| > 1,000 mailboxes + many teams | Hybrid | Native mail + third-party for Teams/Planner |
| Very short timeline & strict audit | Third-party | Dashboards, retries, traceability |
| Complex SPO restructuring | ShareGate/Quest | Permission mappings & advanced reporting |
| Heterogeneous (Google/Box → M365) | Cloudiway/BitTitan | Multi-platform connectors |
Common limitations & how to mitigate
- Service protection: honor Graph, Exchange, and SPO limits; use queues and exponential backoff.
- Teams apps & tabs: reconfigure tabs with absolute URLs and re-authorize third-party apps.
- Planner/Bookings: consider third-party or automated recreation with exports and APIs.
- Inherited SPO permissions: inventory and “flatten” where possible to reduce errors.
- Retention: review blocking policies and coordinate with compliance (Purview/eDiscovery).
FAQ
What native option exists for tenant-to-tenant mailboxes?
Cross-tenant mailbox migration in Exchange Online, with CSV batches, temporary mail coexistence, and migration statistics for tracking.
Can Teams be moved without third-party tools?
There is a native Teams cross-tenant migration. Many organizations pair native + third-party to improve speed and preserve more elements.
How do I prepare OneDrive/SharePoint?
Inventory sites and sizes, clean obsolete versions, align taxonomy, and use cross-tenant migration or Migration Manager with PnP scripts.
What do I need for mail coexistence?
Tenant-to-tenant connectors, transport rules, external contacts, and—if needed—temporary per-user forwarding until each wave completes.
How do I reduce cutover risk?
Small waves, automatic retries and monitoring, initial pilots, deliverability KPIs, and real-time support.
Official links
Conclusion & next steps
For an efficient Microsoft 365 tenant-to-tenant migration, combine native tools where they deliver the most value (Exchange and OneDrive), lean on third-party solutions when you need speed, traceability, and metadata preservation, and orchestrate everything with PowerShell, automation, and KPIs. Preparing identity and coexistence is just as important as moving the data.
Want us to design and execute your optimal approach?
We design the tool & script plan, build progress dashboards, and execute in waves with robust risk controls.










