Applies to: Exchange Server 2010 SP3, Exchange Server 2010 SP2

Topic Last Modified: 2012-12-11

Use the New-MoveRequest cmdlet to begin the process of an asynchronous mailbox or personal archive move. You can also check mailbox readiness to be moved by using the WhatIf parameter.

Syntax

New-MoveRequest -Identity <MailboxOrMailUserIdParameter> [-AcceptLargeDataLoss <SwitchParameter>] [-AllowLargeItems <SwitchParameter>] [-ArchiveOnly <SwitchParameter>] [-ArchiveTargetDatabase <DatabaseIdParameter>] [-BadItemLimit <Unlimited>] [-BatchName <String>] [-Confirm [<SwitchParameter>]] [-DomainController <Fqdn>] [-DoNotPreserveMailboxSignature <SwitchParameter>] [-IgnoreRuleLimitErrors <SwitchParameter>] [-MRSServer <Fqdn>] [-PrimaryOnly <SwitchParameter>] [-Priority <Normal | High>] [-Protect <SwitchParameter>] [-Suspend <SwitchParameter>] [-SuspendComment <String>] [-SuspendWhenReadyToComplete <SwitchParameter>] [-TargetDatabase <DatabaseIdParameter>] [-WhatIf [<SwitchParameter>]]
New-MoveRequest -Identity <MailboxOrMailUserIdParameter> -RemoteCredential <PSCredential> -RemoteGlobalCatalog <Fqdn> -RemoteLegacy <SwitchParameter> [-AcceptLargeDataLoss <SwitchParameter>] [-AllowLargeItems <SwitchParameter>] [-BadItemLimit <Unlimited>] [-BatchName <String>] [-Confirm [<SwitchParameter>]] [-DomainController <Fqdn>] [-IgnoreRuleLimitErrors <SwitchParameter>] [-MRSServer <Fqdn>] [-Priority <Normal | High>] [-Protect <SwitchParameter>] [-RemoteTargetDatabase <String>] [-Suspend <SwitchParameter>] [-SuspendComment <String>] [-SuspendWhenReadyToComplete <SwitchParameter>] [-TargetDatabase <DatabaseIdParameter>] [-TargetDeliveryDomain <Fqdn>] [-WhatIf [<SwitchParameter>]]
New-MoveRequest -Identity <MailboxOrMailUserIdParameter> -Remote <SwitchParameter> -RemoteHostName <Fqdn> [-AcceptLargeDataLoss <SwitchParameter>] [-AllowLargeItems <SwitchParameter>] [-ArchiveDomain <String>] [-ArchiveOnly <SwitchParameter>] [-ArchiveTargetDatabase <DatabaseIdParameter>] [-BadItemLimit <Unlimited>] [-BatchName <String>] [-Confirm [<SwitchParameter>]] [-DomainController <Fqdn>] [-IgnoreRuleLimitErrors <SwitchParameter>] [-MRSServer <Fqdn>] [-PrimaryOnly <SwitchParameter>] [-Priority <Normal | High>] [-Protect <SwitchParameter>] [-RemoteCredential <PSCredential>] [-RemoteGlobalCatalog <Fqdn>] [-RemoteOrganizationName <String>] [-Suspend <SwitchParameter>] [-SuspendComment <String>] [-SuspendWhenReadyToComplete <SwitchParameter>] [-TargetDatabase <DatabaseIdParameter>] [-TargetDeliveryDomain <Fqdn>] [-WhatIf [<SwitchParameter>]]
New-MoveRequest -Identity <MailboxOrMailUserIdParameter> -Outbound <SwitchParameter> -RemoteHostName <Fqdn> [-AcceptLargeDataLoss <SwitchParameter>] [-AllowLargeItems <SwitchParameter>] [-ArchiveDomain <String>] [-ArchiveOnly <SwitchParameter>] [-BadItemLimit <Unlimited>] [-BatchName <String>] [-Confirm [<SwitchParameter>]] [-DomainController <Fqdn>] [-IgnoreRuleLimitErrors <SwitchParameter>] [-MRSServer <Fqdn>] [-PrimaryOnly <SwitchParameter>] [-Priority <Normal | High>] [-Protect <SwitchParameter>] [-RemoteArchiveTargetDatabase <String>] [-RemoteCredential <PSCredential>] [-RemoteGlobalCatalog <Fqdn>] [-RemoteOrganizationName <String>] [-RemoteTargetDatabase <String>] [-Suspend <SwitchParameter>] [-SuspendComment <String>] [-SuspendWhenReadyToComplete <SwitchParameter>] [-TargetDeliveryDomain <Fqdn>] [-WhatIf [<SwitchParameter>]]

Detailed Description

If you move the primary mailbox and archive to separate databases, the databases must be running the same version of Microsoft Exchange Server 2010 Service Pack 1 (SP1) or later.

You need to be assigned permissions before you can run this cmdlet. Although all parameters for this cmdlet are listed in this topic, you may not have access to some parameters if they're not included in the permissions assigned to you. To see what permissions you need, see the "Mailbox moves" entry in the Mailbox Permissions topic.

Parameters

Parameter Required Type Description

Identity

Required

Microsoft.Exchange.Configuration.Tasks.MailboxOrMailUserIdParameter

The Identity parameter specifies the identity of the mailbox or mail user. You can use the following values:

  • GUID

  • Distinguished name (DN)

  • Domain\Account

  • User principal name (UPN)

  • LegacyExchangeDN

  • SMTP address

  • Alias

Outbound

Required

System.Management.Automation.SwitchParameter

The Outbound switch specifies that this mailbox move is a cross-forest move and is being initiated from the source forest. You don't have to specify a value with this parameter.

You can't use this parameter in conjunction with the Remote switch.

Remote

Required

System.Management.Automation.SwitchParameter

The Remote switch specifies that the move you're initiating is outside of your organization, and that this move is being initiated from the target forest.

You don't have to specify a value with this parameter.

You can't use this parameter in conjunction with the Outbound switch.

RemoteCredential

Required

System.Management.Automation.PSCredential

The RemoteCredential parameter specifies an administrator who has permission to perform the mailbox move, for example, Administrator@humongousinsurance.com.

This parameter requires the creation and passing of a credential object. This credential object is created by using the Get-Credential cmdlet. For more information, see Get-Credential.

RemoteGlobalCatalog

Required

Microsoft.Exchange.Data.Fqdn

The RemoteGlobalCatalog parameter specifies the fully qualified domain name (FQDN) of the global catalog server for the remote forest.

RemoteHostName

Required

Microsoft.Exchange.Data.Fqdn

The RemoteHostName parameter specifies the FQDN of the cross-forest organization from which you're moving the mailbox.

RemoteLegacy

Required

System.Management.Automation.SwitchParameter

The RemoteLegacy switch specifies that this mailbox move is from a remote forest that doesn't have Exchange 2010 installed. You don't have to specify a value with this parameter.

AcceptLargeDataLoss

Optional

System.Management.Automation.SwitchParameter

The AcceptLargeDataLoss parameter specifies that a large amount of data loss is acceptable if the BadItemLimit is set to 51 or higher. Items are considered corrupted if the item can't be read from the source database or can't be written to the target database. Corrupted items won't be available in the destination mailbox or .pst file.

AllowLargeItems

Optional

System.Management.Automation.SwitchParameter

The AllowLargeItem parameter specifies that the message size limit will not be enforced on the message item during the move operation.

A value does have to be specified when you use the AllowLargeItem parameter.

ArchiveDomain

Optional

System.String

The ArchiveDomain parameter specifies the FQDN of the external domain to which you're moving the archive. This parameter is used for moving the archive to a cloud-based service.

ArchiveOnly

Optional

System.Management.Automation.SwitchParameter

The ArchiveOnly parameter specifies that you're moving only the personal archive associated with the mailbox.

You can't use this parameter in conjunction with the PrimaryOnly parameter.

ArchiveTargetDatabase

Optional

Microsoft.Exchange.Configuration.Tasks.DatabaseIdParameter

The ArchiveTargetDatabase parameter specifies the Exchange target database to which you're moving the personal archive. If the ArchiveTargetDatabase parameter isn't specified, the archive is moved to the same database as the primary mailbox. If you've specified the ArchiveOnly parameter and you don't specify the ArchiveTargetDatabase parameter, the archive is moved to the homeMDB attribute of the primary mailbox.

You can use the following values:

  • GUID of the database

  • Database name

BadItemLimit

Optional

Microsoft.Exchange.Data.Unlimited

The BadItemLimit parameter specifies the number of bad items to skip if the request encounters corruption in the mailbox. Use 0 to not skip bad items. The valid input range for this parameter is from 0 through 2147483647. The default value is 0. We recommend that you keep the default value 0 and only change the BadItemLimit parameter value if the request fails.

Note:
If you set the BadItemLimit parameter to more than 50, the command fails, and you receive a warning stating: "Please confirm your intention to accept a large amount of data loss by specifying AcceptLargeDataLoss." If you receive this warning, you need to run the command again, this time using the AcceptLargeDataLoss parameter. No further warnings appear, and any corrupted items aren't available after the process is complete.

BatchName

Optional

System.String

The BatchName parameter specifies a descriptive name for moving a batch of mailboxes. You can then use the name in the BatchName parameter as a search string when you use the Get-MoveRequest cmdlet.

Confirm

Optional

System.Management.Automation.SwitchParameter

The Confirm switch causes the command to pause processing and requires you to acknowledge what the command will do before processing continues. You don't have to specify a value with the Confirm switch.

DomainController

Optional

Microsoft.Exchange.Data.Fqdn

The DomainController parameter specifies the fully qualified domain name (FQDN) of the domain controller that writes this configuration change to Active Directory.

DoNotPreserveMailboxSignature

Optional

System.Management.Automation.SwitchParameter

The DoNotPreserveMailboxSignature parameter specifies that the command doesn't preserve the mailbox mapping signature. We recommend that you use this parameter only if the move request fails because the Named Property identifiers are depleted. If you specify this parameter, the mailbox user is required to restart Microsoft Outlook when the move request is complete.

IgnoreRuleLimitErrors

Optional

System.Management.Automation.SwitchParameter

The IgnoreRuleLimitErrors parameter specifies that the command doesn't move the user's rules to the target server running Exchange.

MRSServer

Optional

Microsoft.Exchange.Data.Fqdn

The MRSServer parameter specifies the FQDN of the Client Access server on which the instance of the Microsoft Exchange Mailbox Replication service (MRS) is running. This parameter is used for debugging purposes only. Use this parameter only if directed by support personnel.

PrimaryOnly

Optional

System.Management.Automation.SwitchParameter

The PrimaryOnly parameter specifies that the command should only move the primary mailbox; the personal archive isn't moved. You don't have to specify a value with this parameter.

You can't use this parameter in conjunction with the ArchiveOnly parameter.

Priority

Optional

Microsoft.Exchange.MailboxReplicationService.RequestPriority

The Priority parameter specifies the position in the request queue in which to put this request for processing. Requests are processed in order, based on server health, status, priority, and last update time.

Protect

Optional

System.Management.Automation.SwitchParameter

This parameter is reserved for internal Microsoft use.

RemoteArchiveTargetDatabase

Optional

System.String

The RemoteArchiveTargetDatabase parameter specifies the name of the target database in the remote forest to which you're moving the personal archive. Use this parameter when moving users with archives from the local forest to a remote forest. For moves from a remote forest to the local forest, use the ArchiveTargetDatabase parameter.

If you use this parameter, you must specify the Remote or RemoteLegacy parameter.

RemoteOrganizationName

Optional

System.String

This parameter is reserved for internal Microsoft use.

RemoteTargetDatabase

Optional

System.String

The RemoteTargetDatabase parameter specifies the name of the target database in the remote forest. Use this parameter when moving mailboxes from the local forest to a remote forest. For moves from a remote forest to the local forest, use the TargetDatabase parameter.

If you use this parameter, you must specify the Remote or RemoteLegacy parameter.

Suspend

Optional

System.Management.Automation.SwitchParameter

The Suspend switch specifies whether to suspend the request. If you use this switch, the request is queued, but the request won't reach the status of InProgress until you resume the request. You don't have to specify a value with this switch.

SuspendComment

Optional

System.String

The SuspendComment parameter specifies a description about why the request was suspended. You can only use this parameter if you specify the Suspend parameter.

SuspendWhenReadyToComplete

Optional

System.Management.Automation.SwitchParameter

The SuspendWhenReadyToComplete switch specifies whether to suspend the move request before it reaches the status of CompletionInProgress. After the move is suspended, it has a status of AutoSuspended. You can then manually complete the move by using the Resume-MoveRequest command.

Note:
You can only use the SuspendWhenReadyToComplete switch for online mailbox moves and when moving mailboxes from Exchange Server 2007 or Exchange 2010 mailbox databases. You can’t use this parameter for offline moves or when moving from Exchange Server 2003 mailbox databases.

TargetDatabase

Optional

Microsoft.Exchange.Configuration.Tasks.DatabaseIdParameter

The TargetDatabase parameter specifies the identity of the database that you're moving the mailbox to. If you don't specify the TargetDatabase parameter, the command uses the automatic mailbox distribution logic to determine the database to move to. For more information, see Understanding Automatic Mailbox Distribution.

You can use the following values:

  • GUID of the database

  • Database name

TargetDeliveryDomain

Optional

Microsoft.Exchange.Data.Fqdn

The TargetDeliveryDomain parameter specifies the FQDN of the external e-mail address created in the source forest for the mail-enabled user when the move request is complete. This parameter is allowed only when performing remote moves with the Remote or RemoteLegacy parameter.

WhatIf

Optional

System.Management.Automation.SwitchParameter

The WhatIf switch instructs the command to simulate the actions that it would take on the object. The WhatIf switch can also be used to test a mailbox's readiness to be moved.

By using the WhatIf switch, you can view any errors that will occur without adding the mailbox to the move request queue. You don't have to specify a value with the WhatIf switch.

Input Types

To see the input types that this cmdlet accepts, see Cmdlet Input and Output Types. If the Input Type field for a cmdlet is blank, the cmdlet doesn’t accept input data.

Return Types

To see the return types, which are also known as output types, that this cmdlet accepts, see Cmdlet Input and Output Types. If the Output Type field is blank, the cmdlet doesn’t return data.

Examples

EXAMPLE 1

This example tests a mailbox's readiness to move to the new database DB01 within the same forest and for completeness of the command by using the WhatIf switch. When you use the WhatIf switch, the system performs checks on the mailbox, and if the mailbox isn't ready, you receive an error.

Copy Code
New-MoveRequest -Identity 'tony@alpineskihouse.com' -TargetDatabase "DB01" -WhatIf

EXAMPLE 2

This example moves Tony Smith's mailbox to the new database DB01.

Copy Code
New-MoveRequest -Identity 'tony@alpineskihouse.com' -TargetDatabase "DB01"

EXAMPLE 3

This example creates a batch move request for all mailboxes on the database DB01 and moves them to the database DB02 with the BatchName parameter value DB01toDB02.

Copy Code
Get-Mailbox -Database DB01 | New-MoveRequest -TargetDatabase DB02 -BatchName "DB01toDB02"

EXAMPLE 4

This example uses the WhatIf switch to test whether a mailbox is ready to move across forests and if there are any errors within the command. When you use the WhatIf switch, the system performs checks on the mailbox. If the mailbox isn't ready, an error is returned. This command is run on the target forest.

Copy Code
New-MoveRequest -Identity 'tony@humongousinsurance.com' -Remote -TargetDatabase DB02 -RemoteHostName 'mail.humongousinsurance.com' -RemoteCredential (Get-Credential Atlanta\Administrator) -TargetDeliveryDomain 'contoso.com' -WhatIf

EXAMPLE 5

This example moves Tony Smith's mailbox into the forest where the command is running. When the move is completed, the new ExternalEmailAddress of the mail user in the source forest will be Tony's proxy address with the SMTP domain contoso.com.

Copy Code
New-MoveRequest -Identity 'tony@humongousinsurance.com' -Remote -TargetDatabase DB02 -RemoteHostName 'mail.humongousinsurance.com' -RemoteCredential $Cred -TargetDeliveryDomain 'contoso.com'

EXAMPLE 6

This example pushes Tony Smith's mailbox to the remote forest. Use this command when you initiate the move from the source forest. When initiating moves from the source forest, you must use the RemoteTargetDatabase parameter to specify the database that you're moving the mailbox to. When the move is completed, the new ExternalEmailAddress of the mail user in the source forest will be Tony's proxy address with the SMTP domain mail.contoso.com.

Copy Code
New-MoveRequest -Identity 'tony@humongousinsurance.com' -Outbound -RemoteTargetDatabase DB03 -RemoteHostName 'CAS01.humongousinsurance.com' -RemoteCredential $Cred -TargetDeliveryDomain 'mail.contoso.com'

EXAMPLE 7

This example creates a remote move request for all mailboxes on the target forest that begin with the letter a. The request will be suspended after all the initial content is moved, but before the mailbox is locked down and switched over to the new location. The move request will then need to be resumed by using the Resume-MoveRequest cmdlet.

Note:
By creating a batch, you can create a tag that identifies the mailboxes being moved. Each mailbox will be moved individually when an MRS instance becomes available to perform the move. You can then filter in searches using the BatchName parameter in the Get-MoveRequest cmdlet.
Copy Code
Get-MailUser -ANR a* | New-MoveRequest -Remote -RemoteHostName 'mail.humongousinsurance.com' -RemoteCredential $Cred -TargetDeliveryDomain 'contoso.com' -TargetDatabase DB02 -SuspendWhenReadyToComplete -BatchName "Aug28 - To be Completed at 11pm"

EXAMPLE 8

This example creates a move request processed by the specific Client Access server CAS1.contoso.com, which has MRS installed.

Note:
The MRSServer parameter is reserved for debugging purposes. Use this parameter only if directed by support personnel. If you use this parameter and the specified server isn't functional, this move request isn't processed.
Copy Code
New-MoveRequest -Identity 'tony@humongousinsurance.com' -RemoteHostName 'CAS01.humongousinsurance.com' -Remote -RemoteCredential $Cred -TargetDatabase DB02 -TargetDeliveryDomain 'mail.contoso.com' -MRSServer CAS1.contoso.com

EXAMPLE 9

This example creates a batch move request that's suspended for all mailboxes in the target forest where CustomAttribute1 is set to Monday. Run this command when you want to create the move request now, and then resume it in the evening, when e-mail traffic is low.

Note:
By creating a batch, you can create a tag that identifies the mailboxes being moved. Each mailbox will be moved individually when an MRS instance becomes available to perform the move.
Copy Code
Get-MailUser -Filter {CustomAttribute1 -eq 'Monday'} | New-MoveRequest -RemoteHostName 'mail.humongousinsurance.com' -Remote -RemoteCredential $Cred -TargetDatabase DB01 -TargetDeliveryDomain 'contoso.com' -Suspend -SuspendComment "Resume after 11:00 p.m. PST" -BatchName "MondayMoves_HumongousToContoso"

EXAMPLE 10

This example moves only Tony Smith's primary mailbox to DB01. The archive isn't moved.

Copy Code
New-MoveRequest -Identity 'tony@alpineskihouse.com' -PrimaryOnly -TargetDatabase "DB01"

EXAMPLE 11

This example moves only Tony Smith's archive mailbox to DB03. The primary mailbox isn't moved.

Copy Code
New-MoveRequest -Identity 'tony@alpineskihouse.com' -ArchiveOnly -ArchiveTargetDatabase "DB03"

EXAMPLE 12

This example moves Ayla's primary mailbox and archive to separate databases. The primary database is moved to DB01 and the archive is moved to DB03.

Copy Code
New-MoveRequest -Identity 'ayla@humongousinsurance.com' -TargetDatabase DB01 -ArchiveTargetDatabase -DB03

EXAMPLE 13

This example moves Kweku's primary mailbox to mailbox database DB01 and sets the bad item limit to 100. To set such a large bad item limit, the AcceptLargeDataLoss parameter must be used.

Copy Code
New-MoveRequest -Identity 'Kweku' -PrimaryOnly -TargetDatabase "DB01" -BadItemLimit 100 -AcceptLargeDataLoss