Migration Guide Overview

Complete guide to planning and executing Microsoft 365 group migrations with Primera Labs.

Migration Guide

This comprehensive guide walks you through the entire migration process, from planning to post-migration verification.

Migration Process

The Primera Labs migration process consists of four main phases:

1. Pre-Migration Planning

Before starting your migration, you should:

  • Assess Your Environment: Document all groups, distribution lists, and dependencies
  • Define Scope: Determine which objects to migrate
  • Plan Timing: Choose the optimal migration window
  • Backup Data: Ensure you have backups of critical data
  • Test Connectivity: Verify access to both tenants

2. Discovery Phase

The discovery phase identifies all objects in your source tenant:

# Run full tenant discovery
Start-PrimeraDiscovery -TenantId "source.onmicrosoft.com" -IncludeAll

# Export discovery results
Export-PrimeraDiscovery -Format JSON -OutputPath "C:\Migration\discovery.json"

Discovery includes:

  • All distribution lists and groups
  • Group memberships
  • Permissions and delegates
  • Mail flow rules referencing groups
  • Dependencies between objects

3. Migration Execution

Execute the migration in batches:

# Start batch migration
Start-PrimeraMigration -PlanId "plan-001" -BatchSize 50 -ParallelTasks 5

# Monitor progress
Get-PrimeraMigrationStatus -PlanId "plan-001"

Migration options:

  • Pilot Migration: Migrate a small subset first
  • Staged Migration: Migrate in multiple waves
  • Big Bang: Migrate everything at once
  • Delta Sync: Keep groups in sync during transition

4. Post-Migration Validation

After migration, verify everything:

# Run validation checks
Test-PrimeraMigration -PlanId "plan-001"

# Generate migration report
Get-PrimeraMigrationReport -PlanId "plan-001" -OutputPath "C:\Migration\report.html"

Migration Types

Distribution List Migration

Migrating distribution lists preserves:

  • Display names and aliases
  • Email addresses
  • Member lists
  • Send-as and send-on-behalf permissions
  • Moderation settings
  • Message size restrictions

Security Group Migration

Security groups maintain:

  • Group membership
  • Azure AD roles and assignments
  • Application permissions
  • Group ownership

Dynamic Distribution List Migration

Dynamic DLs transfer with:

  • Recipient filters
  • Conditional filters
  • Query-based membership rules

Conflict Resolution

Handle naming conflicts and duplicates:

# Set conflict resolution strategy
Set-PrimeraConflictPolicy -Strategy "Rename" -Suffix "-Migrated"

# Review conflicts
Get-PrimeraConflicts -PlanId "plan-001"

Conflict strategies:

  • Skip: Don't migrate conflicting objects
  • Rename: Add suffix to conflicting names
  • Merge: Combine with existing objects
  • Replace: Overwrite existing objects

Performance Optimization

Optimize your migration:

  1. Batch Size: Adjust based on tenant throttling
  2. Parallel Processing: Use multiple threads
  3. Off-Peak Hours: Schedule during low-usage times
  4. Incremental Migration: Break into smaller chunks

Common Scenarios

Scenario 1: Tenant Consolidation

Merging multiple tenants into one:

# Add multiple source tenants
Add-PrimeraSourceTenant -TenantId "tenant1.onmicrosoft.com"
Add-PrimeraSourceTenant -TenantId "tenant2.onmicrosoft.com"

# Create consolidated plan
New-PrimeraMigrationPlan -Type "Consolidation" -TargetTenant "main.onmicrosoft.com"

Scenario 2: Tenant Split

Splitting one tenant into multiple:

# Define split rules
New-PrimeraSplitRule -Filter "Department -eq 'Sales'" -TargetTenant "sales.onmicrosoft.com"
New-PrimeraSplitRule -Filter "Department -eq 'Engineering'" -TargetTenant "eng.onmicrosoft.com"

Scenario 3: Cross-Forest Migration

Moving from on-premises to cloud:

# Configure hybrid connectivity
Set-PrimeraHybridMode -Enabled $true -OnPremServer "exchange.contoso.com"

# Sync on-premises groups
Sync-PrimeraOnPremGroups -ForestRoot "contoso.local"

Best Practices

  1. Always run discovery first to understand your environment
  2. Start with a pilot migration of non-critical groups
  3. Document everything including custom settings
  4. Communicate with stakeholders about migration schedule
  5. Monitor actively during migration execution
  6. Validate thoroughly after each migration batch

Next Steps