Uploading 52%

Many companies experience mergers in acquisitions in which we need to consolidate accounts. Migrating one Office 365 tenant into another Office 365 tenant while keeping the same domain name requires that you do PLAN FOR DOWNTIME. Let’s take an example of Parent company A acquiring Child Company B. If you try to add child company B’s domain into Parent company A, you will receive an error saying that it already exist in another Microsoft account. For this reason, you must remove your primary domain from one tenant and recreate it in the other tenant. If done correctly, downtime should be limited to 30 minutes. In this article, i am going to give you best practices to follow using the BitTitan migration tool.

**Please Note** This is a highly level overview of the migration steps using BitTitan. For a complete step-by-step guide with screenshots, follow this link. While this guide is specific to BitTitan the same concepts can be followed using any tool.whi

Set Up the Destination Environment

CheckList:

Provision Users in Destination Office 365 Tenant

  • They will be provisioned with the .onmcirosoft domain in this account
  • Add One at a time
  • Bulk Upload via Powershell
  • Bulk Upload Via CSV
  • Assign Licenses

In 365 Admin Center, Go to Setup>Domains>Add Domains

.

  • *Note* This is where you will go to add the domain and verify with a TXT record after you remove from he source 365 tenant. For now users will have the .onmicrosoft.com as their primary SMTP address

#Bulk Import Users with Passwords Powershell#

Import-Csv -Path 'FilePath' | foreach {New-MsolUser -UserPrincipalName $_.UserPrincipalName -FirstName $_.FirstName -LastName $_.LastName -DisplayName $_.DisplayName -Password $_.Password -ForceChangePassword $False}

Set Impersonation rights for the admin user

Connect to 365 Exchange Online with Powershell (Link in title) and run the following:

New-ManagementRoleAssignment -Role ApplicationImpersonation -User <admin_user_name>

Prepare Source/Destination for BitTitan

CheckList

*Note* You will have to connect to the Source 365 tenancy and 365 tenancy separately in powershell and run these commands in each session

Connect to Exchange Online with Powershell (Link in title) and run the following:

New-ManagementRoleAssignment -Role ApplicationImpersonation -User

Change Send/Receive size in office 365 to max of 150mb

Get-Mailbox | Set-Mailbox -MaxReceiveSize 150MB -MaxSendSize 150MB

Set Up A BitTitan Account

Create a Login

Click the Link to create a BitTitan username and password.

Create a Customer

Enter Primary Domain name and customer name

Send Out Agent to Re-configure Outlook Profiles

CheckList:

*NOTE* BitTitan comes with a tool called Deployment Pro which re-configures Outlook profiles after the migration. This can be pushed out either through GPO or email.

Determine whether sending out agent via GPO or Email

Track Users with Agent Installed

Devices will register and match users email address to computer in a one-to-one relationship. Each computer will have a "Heartbeat"

Prepare Migration Endpoints

CheckList:

Set up your source and destination endpoints in the BitTitan Portal

  • The source endpoint can be found under Office 365
  • Destination is Office 365
  • Provide Admin Credentials for each endpoint

Autodiscover Users

  • Clean Up User List as Needed
  • Remediate UPN issues by clicking on Pencil icon next to users
  • Source should contain .com address and destination should contain .onmicrosoft.com address

Verify Credentials

  • This will tell you if there are errors
  • Most Typical Errors are Insufficient Impersonation rights, wrong admin creds
  • Shows “Completed Verification” upon success

Subscribe Users

  • Select All Users>Click last Icon on top toolbar with 3 lines
  • “Apply User Migration Bundle”
  • Takes a 3-5 Minutes to propagate

Start Migration

CheckList:

Run Prestage Pass bringing mail from Source Tenant to Office 365

  • This will bring over a bulk of the data before we remove the domain
  • This is only making copies of the mail
  • Set Prior to 60 days
  • Any user whose status changes to “Failed” is almost 100% due to server timeout.
  • Simply Re-Run these users

Run Full Pass to bring over remaining Mail, Calendars, Contacts, Notes, Rules

  • Start once Full-Stage Pass has completed
  • Can Run Up to 10 Delta Passes
  • Make sure everyone goes into a “Completed Status”

Domain Removal From Source Tenant

Checklist:

Bulk Update all Users UPNs to .onmicrosoft.com domain in Source Tenant

  • To Remove the domain, we need it removed from all records in the portal.

$UserCredential = Get-Credential

Connect-MsolService -Credential $UserCredential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

Import-PSSession $Session -AllowClobber
$testpath = test-path c:\temp; If ($testpath -eq $false) {new-item -type directory c:\temp}; $dataout = @();
Get-MsolUser -All | ? {$_.UserPrincipalName -match “domain.com”} | % {Set-MsolUserPrincipalName -ObjectId $_.objectId -NewUserPrincipalName ($_.UserPrincipalName.Split(“@”)[0] + “@domain.onmicrosoft.com”); $dataout += “$($_.UserPrincipalName)” ; $_.UserPrincipalName };$dataout | out-file c:\temp\UPNChangeOutput.txt

Remove all alias with the domain

$Records = Get-mailbox -ResultSize Unlimited| where {$_.emailaddresses -like “smtp:*@domain.com”} | Select-Object DisplayName,@{Name=“EmailAddresses”;Expression={$_.EmailAddresses |Where-Object {$_ -like “smtp:*domain.com”}}}

foreach ($record in $Records)
{
   write-host “Removing Alias” $record.EmailAddresses “for” $record.DisplayName
   Set-Mailbox $record.DisplayName -EmailAddresses @{Remove=$record.EmailAddresses}
}

Remove All Groups with the Domain

Get-MsolGroup -all | ?{$_.emailaddress -match “domain.com”} | Remove-MsolGroup -force

Remove the Domain

  • The portal will notify you if there are any users/groups who still have the domain attached to their profile
  • Work with GoDaddy if you need additional assistance

Recreate Domain in Destination 365 Tenant

Checklist:

Add the Domain to 365

  • These steps are basically the reverse of what we just performed in the Source Tenant
  • In the Destination 365 Admin Center, Go to Setup>Domains>Add Domains
  • Add the domain and verify with a TXT record (can take about 5min before you can recreate)

Bulk Update all Users UPNs to .com domain

$UserCredential = Get-Credential

Connect-MsolService -Credential $UserCredential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

Import-PSSession $Session -AllowClobber
$testpath = test-path c:\temp; If ($testpath -eq $false) {new-item -type directory c:\temp}; $dataout = @();
Get-MsolUser -All | ? {$_.UserPrincipalName -match “domain.onmicrosoft.com”} | % {Set-MsolUserPrincipalName -ObjectId $_.objectId -NewUserPrincipalName ($_.UserPrincipalName.Split(“@”)[0] + “@domain.com”); $dataout += “$($_.UserPrincipalName)” ; $_.UserPrincipalName };$dataout | out-file c:\temp\UPNChangeOutput.txt

Bulk Upload Distribution Lists

Create Two CSVs

  1. One has the Distribution Group Name and Primary SMTP Address
  2. One has the Group name and the members apart of that group

Import-Csv -Path ‘File Path’ | foreach {New-Distributiongroup -Name $_.Name -PrimarySmtpAddress $_.Address }

Import-Csv ‘File Path’ | foreach {Add-DistributionGroupMember -Identity $_.DL -Member $_.Alias}

Post-Migration Clean Up

Checklist:

Make Sure DMA Agent Ran Successfully

  • DMA status will go into “Completed” after succesfull authentication by end user
  • Any user that fails authentication 3x will go into an “error” status
  • These users you will need to reschedule and make sure they have the correct 365 password

Mobile User Reconfiguration Guides

Mobile Users can follow the following guides to setup their mailbox on their phone:

Iphone

Android

 

Spread the word

Share with the Community