Exchange Server 2010–Move Mailbox Request : why the move requests stay in the “Move Request” list after the move ?

 

When you move a mailbox, in my example between an Exchange Server 2010 and Exchange Server 2003 – yes in this order, it’s a back-move, just to show it is possible to do so – after the move is complete, the Move Request stays in the “Move Request” queue, with a “Completed” status.

But if you want to move again this mailbox, you will have to clear the “Completed” move request first.

The records stay there just to keep track of the Move Mailbox statistics. When you remove the Move Request, the Move Mailbox statistics on the Mailbox are gone.

Here is the demonstration :

1/ Mailbox alias : MarcD

Mailbox full name : Marc Dupond

Mailbox location : Exchange 2010 SP1 Server (2008SRV1)

image

 

2/ Move MarcD from the Exchange 2010 server to the Exchange 2003 server (New Local Move Request… )

> Console :

image

then:

image

(note the target mailbox database is my Exchange 2003 “E2K3” server)

next screen :

image

last and success screen :

image

> Powershell :

'CONTOSO.COM/Users/Marc Dupond' | New-MoveRequest -TargetDatabase 'E2K3\First Storage Group\Mailbox Store (E2K3)'

 

3/ Note the Completed Move Request in the EMC :

image

4/ See the Move statistics (either in the Get-MoveRequest that will show the same info as the EMC or in the Mailbox properties directly)

[PS] C:\Windows\system32>Get-MoveRequest | fl

RunspaceId                 : acb067c3-155b-4140-b43a-edc0048a5dc6
ExchangeGuid               : ba53f864-3fba-4169-ad64-203d33f934ab
SourceDatabase             : DB04
TargetDatabase             : E2K3\First Storage Group\Mailbox Store (E2K3)
SourceArchiveDatabase      :
TargetArchiveDatabase      :
Flags                      : IntraOrg, Push, Offline
RemoteHostName             :
BatchName                  :
Status                     : Completed
RequestStyle               : IntraOrg
Direction                  : Push
IsOffline                  : True
Protect                    : False
Suspend                    : False
SuspendWhenReadyToComplete : False
Alias                      : MarcD
DisplayName                : Marc Dupond
ExternalDirectoryObjectId  :
LastExchangeChangedTime    :
RecipientType              : UserMailbox
RecipientTypeDetails       : LegacyMailbox
IsValid                    : True
ExchangeVersion            : 0.0 (6.5.6500.0)
Name                       : Marc Dupond
DistinguishedName          : CN=Marc Dupond,CN=Users,DC=CONTOSO,DC=COM
Identity                   : CONTOSO.COM/Users/Marc Dupond
Guid                       : 68003223-28d0-4f73-95e3-8ff1355747ba
OrganizationId             :
OriginatingServer          : dc2003.CONTOSO.COM

 

[PS] C:\Windows\system32>Get-Mailbox MarcD |FL Identity,*Mailbox*

Identity                   : CONTOSO.COM/Users/Marc Dupond
DeliverToMailboxAndForward : False
ManagedFolderMailboxPolicy :
IsMailboxEnabled           : True
MailboxPlan                :
MailboxMoveTargetMDB       : E2K3\First Storage Group\Mailbox Store (E2K3)
MailboxMoveSourceMDB       : DB04
MailboxMoveFlags           : IntraOrg, Push, Offline
MailboxMoveRemoteHostName  :
MailboxMoveBatchName       :
MailboxMoveStatus          : Completed
WhenMailboxCreated         : 6/10/2011 10:16:14 AM
ArbitrationMailbox         :

 

5/ We remove the Move Request (if you don’t, you won’t be able to move the mailbox again, either on an other server or even on an other database on the same server) :

> Console:

image

> Powershell :

'CONTOSO.COM/Users/Marc Dupond' | Remove-MoveRequest

6/ Obviously the Get-Moverequest will then return an empty list (or a list without the MarcD user move stats), but also the Mailbox properties from MarcD won’t be there anymore !

[PS] C:\Windows\system32>Get-Mailbox MarcD |FL Identity,*Mailbox*

Identity                   : CONTOSO.COM/Users/Marc Dupond
DeliverToMailboxAndForward : False
ManagedFolderMailboxPolicy :
IsMailboxEnabled           : True
MailboxPlan                :
MailboxMoveTargetMDB       :
MailboxMoveSourceMDB       :
MailboxMoveFlags           : None
MailboxMoveRemoteHostName  :
MailboxMoveBatchName       :
MailboxMoveStatus          : None
WhenMailboxCreated         : 6/10/2011 10:16:14 AM
ArbitrationMailbox         :

 

=> We now understand why the Move Mailbox request stay inside : mainly to keep track of the Move mailbox statistics, especially useful for bulk and large migrations, and also to keep an history, and eventually export this history onto a text or CSV history file.

The fact we cannot move Mailboxes for existing status request even if they are Completed, guess it’s to be sure we keep track of the last status before cleaning those stats… any thoughts are welcome !

 

Happy testings,

Sam