Pre-flight and migration tool update

We received some feedbacks since the Pre-flight tool was published last year on GitHub: from bugs (yeah, those pesky things) to new features. Focusing on the features, it’s about time to make a review on them:


This is what that motivated me to write the code: Giving customers a sample tool that helps checking objects before requesting a mailbox move. It is documented here.

Customers using FastTrack Center services have a pre-flight tool available. But I felt customers outside FTC could use some help and guidance as well, so this script/tool came to light.

Export migration command (updated)

The tool originally exported the migration scripts using the New-MoveRequest cmdlet. But it used New-MigrationBatch for migrating mailboxes directly from the tool. Now we use the New-MigrationBatch for both operations.

Why did we use different approaches for migrating mailboxes and exporting migration script? To give customers the opportunity to learn two different ways to accomplish the same thing. Remember this is a sample script.

But why did we change the behavior? One, for consistency, two, to make it work with the report script and three, New-MigrationBatch is faster. Not to be confused: the migration itself tends to take the same amount of time for both New-MigrationBatch and New-MoveRequest, but you don’t have to keep PowerShell running a set of cmdlets that can take a lot of time to complete.

Migrate mailboxes (updated)

At the beginning the tool only allowed you to immediately start the migration. But then the Exchange Team introduced a feature that allows customers to schedule the migrations, which is awesome by the way.

The ability to schedule migrations (alongside with reporting) was an appealing topic for customers using FastTrack Center migration services. But then again… what about customers not using our services?

Now the tool mimics the Exchange Admin Center migration options (manual, automatic, scheduled) and customers can easily schedule their migration jobs directly from the Pre-flight & Migration tool. You can see the details at Mailbox migration – Do it yourself guide.

Import list of mailboxes for pre-flight or migration (new)

The official Pre-flight tool we use within FastTrack Center requires customers to build a CSV file with the list of mailboxes to be checked and load it into the tool. Me personally didn’t like the idea and would rather pull a list of mailboxes available for migration from Exchange Online.

Guess what? I was wrong. Lots of people requested this feature. It appears that this helps a lot, because you do not have to select each mailbox and add it to the list for pre-flight/migration.

That’s how it works: You open the tool, connect to Exchange Online and simply click the Import button. Or click the File/Import… menu.

Sort (new)

The original version of the tool listed the mailboxes available for migration in a less than optimal way. To say the least. One of our customers asked why didn’t it sorted the mailboxes before presenting them in the Available mailboxes list. I confess I was ashamed because it was so simple to implement yet I didn’t think of it… Good thing we have customers that keep us true.

But then I felt we could go further and added the ability to sort the list both ascending or descending. By display name or e-mail address. And that is what I later coded into the tool. Try it on clicking on the list headers!

More information on the lists (new)

It has to do with the sorting thing. First, it was not possible to do the sorting in an intuitive way without column headers, so I changed the control from TreeView to ListView. List view is much easier to work with for those new things you were asking.

Then I had the columns, so why not listing the display name in addition to the SMTP addresses?

Search (new)

A colleague in FTC bugged me with this. I guess he has a customer that was bugging him about this one as well. And I am glad they did, because I got to learn something new!

The idea is simple: You type the name of the mailbox you want to find and the list scrolls to it. Then you can do whatever you need: Select, deselect, add to the selected list, remove from it.

Works with MFA (new)

One of our customers decided to give the tool a try. They were seriously considering doing the migration by themselves (they did it beautifully latter on) and needed a way to check for foreseeable issues. But their identities were federated and they did not use WS-Trust. Meaning that the process described at Connect to Exchange Online PowerShell does not work for them. They use Connect to Exchange Online PowerShell using multi-factor authentication instead.

Now the tool checks what kind of connection it needs to use and adjusts itself to the situation: If you start it from PowerShell with the Exchange Online module installed, it will use MFA, otherwise the classic method will be used.

About feedback and open software

All the changes above were driven by feedback. However, let’s not forget this tool is an open software under the MIT license. So, every feedback is welcome as well as any changes to the code.

Be bold and if you feel like, write the piece of code you think this tool deserves.