Mailbox Migration - Exchange Hybrid - How its works - Powershell

 Hello Everyone 

How you all doing fine, Today we are going to cover the topic of exchange 2016 mailbox move migration and the following are going to cover in this blog.



  1. How Mailbox migration Works
  2. Difference types of Migrations - How its works 
  3. Important Components involved During Migration 
  4. Background Process when you initiate the mailbox movement
  5. Powershell Commands to move the mailbox migration


  1. How Mailbox migration Works 
The tool between to move from exchange online to exchange onprem server is call Hybrid Configuration Wizard a.k.s HCW

In Exchange hybrid deployment, we can perform two type of mailbox migrations - Detail below

 Onboard Migration : Mailbox Move from exchange onprem servers to Exchange online

 Off-board Migration : Mailbox move from Exchange online [Already Migrated Mailbox ] back to Exchange Onprem Servers

Both the migrations are handled by Exchange Online

PULL and PUSH 

If you do the onboard Migration, Onprem Mailbox data's are being PULLED from onprem exchange servers to exchange online  

If you do Off-board Migration , Mailbox data are being PUSHED from exchange Online to exchange onprem Server

2 - How Mailbox migration works in below migration methods

1. Hybrid Migration - also called Remote Move
2. Cut-over Migration 
3. IMAP Migrations

Cut-over

In cut-over migrations users has two mailboxes at the same time,  One is that actual mailbox which is available in Onprem servers and other is being provisioned in exchange online during Cut-over migration

But in exchange hybrid move, the user has one mailbox during the entire hybrid migration process , In this process the content of the mailbox are moved from exchange onprem to exchange online, and if you are doing off-board mailbox migration , the content will be moved from exchange online to exchange onprem , but at the same time user will have only one mailbox either exchange onprem server or exchange online 


2. Core Components or services involves in exchange hybrid mailbox Migrations

The  below roles are actively playing during exchange hybrid mailbox Migrations.

  •  Microsoft Exchange Mailbox Replication Service  - MRS 
  •  Migration Services
  •  Migration Arbitration Mailbox
  •  System Mailbox


 Microsoft Exchange Mailbox Replication Service  - MRS -  This component is responsible for processing all types of move request. It can be either local move or Remote move

MRS is also us responsible for sync request if we are running IMAP and Merge request if we are doing cut-over or staged Migration

Mailbox Import request / M365 PST Import service, Public Folder migration request and Mailbox restore request, All the request are processed by MRS

MRS is available on both exchange online and Exchange onprem Servers

Migration Services :  This component is available on both exchange online and Exchange onprem servers. When you run a migration batch , migration services initiate a few powershell commands

New-Move request in case of hybrid Migration
New-SyncRequest if its for IMAP migration
New-mergerequest in case if we running cut-over or staged

MIGRATION ARBITRATION MAILBOX : It stores the ingratiation of Migration end points, and about the information of the objects. 
Eg : Endpoints, Users, and Batches

SYSTEM MAILBOX : It stores the information above the move request, move reports, sync status of mailbox migration

Background Process during when you initiate the mailbox movement

Step 1 

When we start a migration Batch or move Request ---> Move request will show as as QUEUED, which means, mailbox migration is in QUEUE

Step 2 

Exchange online MRS service communicates with MRS services running on Exchange onprem Server

The MRS service running on exchange online pulls the mailbox data from the exchange onprem mailbox and moves it into MAIL USERS in Exchange online - At this stage, migration status will be IN PROGRESS 

Step 3

When the move request is 95 % completed , the onprem MRS services locks the onprem mailbox till the final sync is completed. At this point of time, , move request is still IN PROGRESS 

Step  4 

The Exchange online MRS service converts  the MAIL ENABLED MAIL USERS to MAILBOX

The Onprem Exchange server MRS service converts to MAILBOX to MAIL ENABLED REMOTE MAILBOX and the actual mailbox in onprem server is like SOFT deleted and move request status shows as completed

Step 5

The exchange administrator delete the migration batch from exchange online, and the move request information has been cleared from active directory and System mailbox


Powershell Commands to move the mailbox migration


Ramki: 10/15/2023 09:59:56> New-MoveRequest -Identity "anil.hunt@cloudmonkeys.xyz" -Remote -RemoteHostName "cloudmonkeys.xyz" -TargetDeliveryDomain "cloudfield.mail.onmicrosoft.com" -RemoteCredential (Get-Credential cloudmonkeys\administrator)

DisplayName Status TargetDatabase
----------- ------ --------------
Anil Hunt   Queued INDP287DG140-db130


Ramki: 10/15/2023 10:01:31>Get-MoveRequest

DisplayName Status TargetDatabase
----------- ------ --------------
Anil Hunt   Queued INDP287DG140-db130


Ramki: 10/15/2023 10:02:01>Get-MoveRequest | fl


Alias                      : Anil.Hunt
DisplayName                : Anil Hunt
RecipientTypeDetails       : MailUser
User                       : 1abc955d-1f21-4ff3-b9ed-4089de07a99d
UserGuid                   : 65f0199a-5f28-4ebc-846c-da3545702911
SourceDatabase             :
SourceArchiveDatabase      :
TargetDatabase             : INDP287DG140-db130
TargetArchiveDatabase      :
RemoteHostName             : cloudmonkeys.xyz
IsOffline                  : False
SuspendWhenReadyToComplete : False
RequestQueue               : INDP287DG140-db130
ExchangeGuid               : 90c65432-5ce0-4660-8991-29e826546f0d
Flags                      : CrossOrg, Pull
BatchName                  :
Status                     : Queued
Protect                    : False
Suspend                    : False
Direction                  : Pull
RequestStyle               : CrossOrg
OrganizationId             : INDPR01A010.PROD.OUTLOOK.COM/Microsoft Exchange Hosted Organizations/cloudfield.onmicrosoft.com - INDPR01A010.PROD.OUTLOOK.COM/ConfigurationUnits/cloudfield.onmicrosoft.com/Configuration
Identity                   : 1abc955d-1f21-4ff3-b9ed-4089de07a99d
IsValid                    : True
ObjectState                : Unchanged



Ramki: 10/15/2023 10:02:14>Get-MoveRequest | fl


Alias                      : Anil.Hunt
DisplayName                : Anil Hunt
RecipientTypeDetails       : UserMailbox
User                       : 1abc955d-1f21-4ff3-b9ed-4089de07a99d
UserGuid                   : 65f0199a-5f28-4ebc-846c-da3545702911
SourceDatabase             :
SourceArchiveDatabase      :
TargetDatabase             : INDP287DG140-db130
TargetArchiveDatabase      :
RemoteHostName             : cloudmonkeys.xyz
IsOffline                  : False
SuspendWhenReadyToComplete : False
RequestQueue               : INDP287DG140-db130
ExchangeGuid               : 90c65432-5ce0-4660-8991-29e826546f0d
Flags                      : CrossOrg, Pull
BatchName                  :
Status                     : Completed
Protect                    : False
Suspend                    : False
Direction                  : Pull
RequestStyle               : CrossOrg
OrganizationId             : INDPR01A010.PROD.OUTLOOK.COM/Microsoft Exchange Hosted Organizations/cloudfield.onmicrosoft.com - INDPR01A010.PROD.OUTLOOK.COM/ConfigurationUnits/cloudfield.onmicrosoft.com/Configuration
Identity                   : 1abc955d-1f21-4ff3-b9ed-4089de07a99d
IsValid                    : True
ObjectState                : Unchanged



Ramki: 10/15/2023 11:15:40>Get-MoveRequestStatistics

cmdlet Get-MoveRequestStatistics at command pipeline position 1
Supply values for the following parameters:
Identity: 1abc955d-1f21-4ff3-b9ed-4089de07a99d

DisplayName StatusDetail TotalMailboxSize         TotalArchiveSize PercentComplete
----------- ------------ ----------------         ---------------- ---------------
Anil Hunt   Completed    689.1 KB (705,680 bytes) 0 B (0 bytes)    100


Ramki: 10/15/2023 11:21:31>Get-MoveRequestStatistics  -Identity 1abc955d-1f21-4ff3-b9ed-4089de07a99d | fl


MailboxIdentity                          : 1abc955d-1f21-4ff3-b9ed-4089de07a99d
DistinguishedName                        : CN=1abc955d-1f21-4ff3-b9ed-4089de07a99d,OU=cloudfield.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=INDPR01A010,DC=PROD,DC=OUTLOOK,DC=COM
DisplayName                              : Anil Hunt
Alias                                    : Anil.Hunt
ExchangeGuid                             : 90c65432-5ce0-4660-8991-29e826546f0d
ArchiveGuid                              :
Status                                   : Completed
StatusDetail                             : Completed
SyncStage                                : SyncFinished
Flags                                    : CrossOrg, Pull
RequestStyle                             : CrossOrg
Direction                                : Pull
IsOffline                                : False
Protect                                  : False
DoNotPreserveMailboxSignature            : True
Priority                                 : Normal
WorkloadType                             : Onboarding
Suspend                                  : False
SuspendWhenReadyToComplete               : False
IgnoreRuleLimitErrors                    : False
RecipientTypeDetails                     : UserMailbox
SourceVersion                            : Version 15.1 (Build 2507.0)
SourceDatabase                           :
SourceServer                             : cmex01.cloudmonkeys.xyz
TargetVersion                            : Version 15.20 (Build 6863.0)
TargetDatabase                           : INDP287DG140-db130
TargetServer                             : PN3P287MB2229.INDP287.PROD.OUTLOOK.COM
SourceArchiveDatabase                    :
SourceArchiveVersion                     :
SourceArchiveServer                      :
TargetArchiveDatabase                    :
TargetArchiveVersion                     :
TargetArchiveServer                      :
ShardsMoveInformation                    : { }
RemoteHostName                           : cloudmonkeys.xyz
RemoteTenant                             :
RemoteGlobalCatalog                      :
BatchName                                :
StartAfter                               :
CompleteAfter                            :
EffectiveIncrementalSyncInterval         : 1.00:00:00
ConfiguredIncrementalSyncInterval        :
RemoteCredentialUsername                 : cloudmonkeys\administrator
RemoteDatabase                           : CMEX01DB01
RemoteDatabaseName                       : CMEX01DB01
RemoteArchiveDatabase                    :
RemoteArchiveDatabaseName                :
TargetDeliveryDomain                     : cloudfield.mail.onmicrosoft.com
ArchiveDomain                            : cloudfield.mail.onmicrosoft.com
BadItemLimit                             : 0
RetryCleanup                             : False
BadItemsEncountered                      : 0
LargeItemLimit                           : 0
LargeItemsEncountered                    : 0
MissingItemsEncountered                  : 0
DataConsistencyScore                     : Perfect
DataConsistencyScoringFactors            : {}
LastSkippedItemEncounteredTimestamp      :
SkippedItemApprovalTimestamp             :
AllowLargeItems                          : False
QueuedTimestamp                          : 15-10-2023 10:01:28
StartTimestamp                           : 15-10-2023 10:04:16
LastUpdateTimestamp                      : 15-10-2023 10:07:12
LastSuccessfulSyncTimestamp              : 15-10-2023 10:06:26
InitialSeedingCompletedTimestamp         : 15-10-2023 10:06:17
FinalSyncTimestamp                       : 15-10-2023 10:06:26
CompletionTimestamp                      : 15-10-2023 10:07:11
SuspendedTimestamp                       :
OverallDuration                          : 00:05:43.6200531
TotalSuspendedDuration                   : 00:00:00
TotalFailedDuration                      : 00:00:00
TotalQueuedDuration                      : 00:02:42.9778690
TotalInProgressDuration                  : 00:03:00.6421841
TotalStalledDueToContentIndexingDuration : 00:00:00
TotalStalledDueToMdbReplicationDuration  : 00:00:00
TotalStalledDueToMailboxLockedDuration   : 00:00:00
TotalStalledDueToReadThrottle            : 00:00:00
TotalStalledDueToWriteThrottle           : 00:00:00
TotalStalledDueToReadCpu                 : 00:00:00
TotalStalledDueToWriteCpu                : 00:00:00
TotalStalledDueToReadUnknown             : 00:00:00
TotalStalledDueToWriteUnknown            : 00:00:00
TotalTransientFailureDuration            : 00:00:00
MRSServerName                            :
TotalMailboxSize                         : 689.1 KB (705,680 bytes)
TotalMailboxItemCount                    : 276
TotalArchiveSize                         : 0 B (0 bytes)
TotalArchiveItemCount                    : 0
TotalPrimarySize                         : 689.1 KB (705,680 bytes)
TotalPrimaryItemCount                    : 276
SyncedItemCount                          : 292
BytesTransferred                         : 1.302 MB (1,365,126 bytes)
BytesTransferredPerMinute                : 0 B (0 bytes)
ItemsTransferred                         : 292
ShardBytesTransferred                    : 191.2 KB (195,813 bytes)
ShardItemsTransferred                    : 16
ArchiveBytesTransferred                  : 0 B (0 bytes)
ArchiveItemsTransferred                  : 0
PercentComplete                          : 100
CompletedRequestAgeLimit                 : 3650.00:00:00
InternalFlags                            : SkipKnownCorruptions,UseDataConsistencyScore,AddedToHistory,UseFailureHistoryHandler
JobFeatures                              : BinaryJobFeatures, UseRequestGuidForMoveReport, CSShardMergeOnboarding, ModernMap, BinaryState
FailureCode                              :
FailureType                              :
FailureSide                              :
Message                                  :
FailureTimestamp                         :
IsValid                                  : True
ValidationMessage                        :
RequestGuid                              : 6260df77-b856-4a0e-ac2c-7a57f2129b90
RequestQueue                             : INDP287DG140-db130
MigrationMailboxGuid                     :
SourceEndpointGuid                       :
MigrationBatchGuid                       :
MigrationUserGuid                        :
Identity                                 : 1abc955d-1f21-4ff3-b9ed-4089de07a99d
Report                                   :
ERProperty                               :
SlaReport                                :
SkippedItemRecords                       :
OutOfSlaConditions                       : {}
LastFailure                              :
AnalysisResults                          :
RequestExpiryTimestamp                   : 14-12-2023 04:37:11
SourceWlmLevel                           :
TargetWlmLevel                           :
EffectiveSourceWlmLevel                  : CustomerExpectation
EffectiveTargetWlmLevel                  : CustomerExpectation
ConfigCache                              : Microsoft.M365.Core.ConfigurationSettings.ConfigCache
Diagnostics                              :
DiagnosticInfo                           :
ObjectState                              : Unchanged

=========================================================================

I hope this topic covers some useful information  and happy Learning 😃

Comments