Season’s Greetings to you all! This is likely to be my last post of any substance of 2016, so let’s hope it’s a useful one!
I have recently been in the position of needing to complete individual move requests from within a migration batch created using PowerShell and the New-MigrationBatch command.
In the past I have always used the advice of Paul Cunningham’s blog on the subject with total success. You can see this here: http://exchangeserverpro.com/completing-individual-move-requests-migration-batch/. However, it has been a few months since I have had to do this and this process no longer worked. Having set the “SuspendWhenReadyToComplete” property to $False, I would see the behaviour below, effectively no change.
After a bit of research and not really finding anything 100% I eventually discovered that the command you need to run to allow the mailbox move to complete has changed slightly, you still need to set SuspendWhenReadyToComplete to $False, but in addition there is a hidden attribute and an additional attribute you need to configure.
Firstly the hidden attribute, PreventCompletion. You cannot retrieve this attribute to find its value, so hard to find without reading something like this! The second is CompleteAfter. This is the same value you will see in the EAC Migrations Tab which by default is set to 31/12/9999 23:59:59. The complete correct command you need to run is as follows:
Set-MoveRequest email@example.com -SuspendWhenReadyToComplete:$False -PreventCompletion:$False -CompleteAfter 1
After running that command, and then Resume-MoveRequest will then complete your mailbox move (See Below).