Skip to content

Mailbox migration to Office 365 the PowerShell migration entities | Part 1#5

The current article is the first article in a series of five articles, that deal with the subject of using PowerShell as a tool for getting information about the mailbox migration process from the On-Premise environment to Office 365 (Exchange Online).In the first article, we review the following subjects:

  • The various entities that are involved on the mailbox migration process.
  • The relationship between these entities.
  • The PowerShell commands that we use for address each of this “migration entity”.

The content of the article series

In the second article, we review the various PowerShell commands that we can use for getting, and exporting information about the mailbox migration process such as Get-MoveRequest, Get-MoveRequestStatistics, Get-MigrationUser, Get-MigrationUserStatistics and more.

In the third article, we review how to use a menu based PowerShell script that I have written that will simplify the process of:

  • Connecting to Exchange Online using remote PowerShell.
  • Exporting information about the migration process to various file types.
  • Export information from on-Premises environment that include On-Premise Active Directory and Exchange on-Premises.
  • Perform basic troubleshooting steps in Exchange on-Premises environment.

Exchange on-Premises vs. Exchange Online

Although the focus in the current article series is – the migration process that is implemented by migrating Exchange on-Premises mailboxes to Office 365, most of the concepts and the PowerShell commands that we review, are also relevant to Exchange on-Premises based environment.

The terms that we use for defining a mailbox migration process

Mailbox move

In Exchange based environment, the term “mailbox migration” is translated into the term “Mailbox move”.

As the name implies, when we “migrate” Exchange mailbox from Exchange Database A to Database B, or from Exchange server A to Exchange server B (from Exchange on-Premises infrastructure to Exchange Online infrastructure in our scenario), Exchange server relate to the migration process as a “Mailbox move”.

Move request

The process of mailbox migration is realized is “Move request

The Exchange server that is going to be the “NEW host” of the mailbox (the “receiving Exchange server”), send a “Move request” to the Exchange server the is currently host the mailbox.

In our specific scenario, Exchange Online server “requests” from Exchange On-Premises to Move a specific mailbox.

The relationship of Exchange mailbox and Active Directory user account

Although we use most of the time the term “Mailbox”, it is important to emphasize that Exchange mailbox is not a “standalone entity”.

Instead, each Exchange mailbox is associated with Active Directory user (mailbox owner).
So, if we want to be more accurate, when we use the term “mailbox migration” we are also relating to the “user account entity” that is associated with the Exchange mailbox.

The mailbox migration process relates to the user account that is associated with the Exchange mailbox as – “Migrated user”.

This term “Migrated user” can be a little bit confusing because, in reality, we don’t relay migrate the Active Directory user account.

In Office 365 infrastructure, we assume that that the mailbox migration process will “copy” the On-Premise Active Directory user account to the cloud or , another option is, using Directory synchronization server that synchronized the On-Premise Active Directory user account to the cloud (Azure Active Directory).

The term Mailbox Migration

The mailbox migration entities

The “Mailbox migration process” is composed from couple of “entities”.

Before we start to run the related PowerShell commands, it’s important that we get a general concept of the various “entities” that involved in this process (the mailbox migration to Office 365) and the “role” of each of these entities.

In the following diagram, we can see an example of the “entities” that are involved in the process.

The entities that involved in the mailbox migration to Office 365 and the associated PowerShell commands -02

The “entities” that involved in the mailbox migration to Office 365 and the associated PowerShell commands

Exchange PowerShell cmdlets that relate to the process of mailbox migration, enable us to address each of this “entities” that involved in the mailbox migration process.

The purpose of this “Get” PowerShell cmdlets is – getting information about the various migration entities such as – the specific settings and properties of each entity, the status of the specific entity and so on.

The PowerShell commands that we review in the current article are:

  • Get-MigrationEndpoint
  • Get-MigrationBatch
  • Get-MoveRequest
  • Get-MoveRequestStatistics
  • Get-MigrationUser
  • Get-MigrationUserStatistic

In the following diagram, we can see that PowerShell cmdlets that are associated with the user account object” and the Exchange mailbox object.

The entities that involved in the mailbox migration to Office 365 and the associated PowerShell commands -01

In the following diagram, we can see that PowerShell cmdlets that are associated with the migration batch object” and the migration endpoint object.

The entities that involved in the mailbox migration to Office 365 and the associated PowerShell commands -02

The Migration batch object as a logical container

An additional concept that I would like to mention regarding the mailbox migration entities is the concept of the “Migration batch”.

We can relate to the “Migration batch entity” as a logical container, that “hold inside” the migrated mailbox and the users accounts that are associated with each Exchange mailbox.

In a case that we run multiple Migration batches at the same time, in some scenarios, we will need to get information about all the migration entities that are related to the specific Migration batch.

In the next articles –Using PowerShell for view and export information about mailbox migration to Office 365 | Part 3#5 and Using PowerShell for view and export information about mailbox migration to Office 365 | Part 4#5, we review the PowerShell commands that we can use for getting information about objects such as “Move Requests” and “Migration users that are related to a specific Migration batch.

Migration Batch as a logical container

A short description of the migration entities

Migration Endpoint
Get-MigrationEndpoint 
The term Endpoint or Migration EndPoint, define a set of settings and credentials that Exchange Online use for “addressing” the Exchange on-Premises server.
Each mailbox migration process (migration batch) must use an existing “Migration Endpoint”, that serves as the base for the mailbox migration process.
In other words – in case that the Migration EndPoint, was not created or in case that the Endpoint includes wrong settings such as wrong credentials or wrong Exchange On-Premises server name, the mailbox migration process cannot be executed.
Exchange Online support the option of using multiple “Migration EndPoints”.
Migration Batch
Get-MigrationBatch 
The term “migration batch” serve for define a “logical container”, that contain one or many “move requests”, and the user accounts that are associated with each migrated mailbox.
In Office 365 (Exchange Online) environment, most of the time, the term “Migrated mailbox”, relates to Exchange On-Premises mailbox that is migrated to the cloud (Exchange Online).
In Exchange Hybrid environment, the term “Migrated mailbox” could also relate to “off boarding”, a scenario in which the mailbox migration is implemented by migrating Exchange Online mailbox to the Exchange on-Premises environment.
Move Request
Get-MoveRequestGet-MoveRequestStatistics
The term “Move Request” describe the process in which the Exchange on-Premises mailboxes is “copied” and then “moved” to the Office 365 (Exchange Online).
The PowerShell commands that relate to the “Move Request” are: Get-MoveRequest

The PowerShell command Get-MoveRequest will “fetch” information about the mailbox properties that we migrate.
Get-MoveRequestStatistics

The PowerShell command Get-MoveRequestStatistics will “fetch” more detailed information about the “mailbox content” that we migrate.
For example, information about the completed percentage of mailbox content that was migrated, errors, information about “bad mail items” and more.
MigrationUser
Get-MigrationUserMigrationUserStatistics
Each Exchange mailbox is associated with a “user account”.
The PowerShell command Get-MigrationUser, will “fetch” information about the user account properties that is associated with the Exchange mailbox.

The PowerShell command Get-MigrationUserStatistics, will “fetch” additional information such as SyncedItemCount, Status , EstimatedTotalTransferSize and more.

The scope of the article series

The basic assumption is that in this phase you have already mange to create the required “Exchange on-Premises endpoint”.

The meaning is, that your Exchange On-Premises server has all the required pre- requirements such a public availability”, that enable Exchange Online to establish the connection with your Exchange On-Premises server.

In case that you need to “establish” the connection between Exchange Online and Exchange On-Premises, and you need more information about the required preparations and pre- requirements you can read the following articles:

The various type of mail migration to Office 365

At the current time, Exchange Online support the following types of mailbox migration

  1. Cutover migration
  2. Stage migration
  3. Exchange Hybrid migration
  4. IMAP migration

Although that each of the “Exchange Online mail migration method have unique characters of its own, the PowerShell command that we review are relevant for all the above mail migration methods.

Download Mail Migration PowerShell script

The next article in the current article series

Using PowerShell for view and export information about mailbox migration to Office 365 | Part 2#5

o365info Team

o365info Team

This article was written by our team of experienced IT architects, consultants, and engineers.

This Post Has 0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *