Office 365 Migration

Greate cmdlets to use during exchange migration

This powershell cmdlet requieres that you are connected to exchange online. It will list the status of all mailboxes beeing synced.

Get-MigrationUser -Status Syncing | Get-MigrationUserStatistics | ft Identity, PercentageComplete, State, TotalItemsInSourceMailboxCoun
t, BytesTransferred, EstimatedTotalTransfersize

Another cmd-let that gives some more detailed look

Get-MoveRequestStatistics -identity e-mailaddress

Replace emailaddress

Complete single mailboxes during migration;

Set-MoveRequest -SuspendWhenReadyToComplete $false -PreventCompletion $false -CompleteAfter 5 | Resume-MoveRequest

Get a list of all mailboxes incl. totalitemsize og mailbox type;

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010;

$tt = Get-Mailbox

foreach ($item in $tt)
$cc = $item | Get-MailboxStatistics

$item | Add-Member -Name 'extended' -Value $cc -MemberType NoteProperty

$tt | select DisplayName, MailboxMoveRemoteHostName, UserPrincipalName, RecipientTypeDetails,HiddenFromAddressListsEnabled , @{ Label ='TotalItemSize'; Expression= {$_.extended.TotalitemSize} } | export-csv -Path C:\mailboxes.csv

Remove emailaddresses that are no longer used

$user = Get-Mailbox -ResultSize unlimited " |
$EmailAddress = $_.EmailAddresses | Where-Object {$_ -notlike "*kakster.local"}
$_ | Set-Mailbox -EmailAddresses $EmailAddress
#Rewrite below
foreach ($_ in $user)


List mailbox missing sync jobs

Get-Mailbox | Where-Object { $_.MailboxMoveRemoteHostName -ne ""} | select Name, OrganizationalUnit

List mailboxes detailed syncstatus

Get-MigrationUser -Status Syncing | select identifier | foreach {Get-MoveRequestStatistics -Identity $_.identifier

When migration failed due to LargeItem errors;

Set-MigrationBatch -LargeItemLimit 10

When there’s too many corrupted items

Set-MigrationBatch -BadItemLimit 10

Shared Mailboxe – Hybrid;

Great registry settings;





“ExcludeHttpRedirect”=dword:00000000 (HVIS MSO365 BENYTTES)