Applies to: Exchange Server 2013, Exchange Online

Topic Last Modified: 2013-01-08

Use the Test-MigrationServerAvailability cmdlet to test the availability of the target server in preparation to perform cross-forest mailbox moves, migration of on-premises mailboxes to Exchange Online, or to migrate on-premises mailbox data from an IMAP server to Exchange Online mailboxes. For all migration types, the cmdlet attempts to verify the connection settings used to connect to the target server.

For information about the parameter sets in the Syntax section below, see Syntax.

Syntax

Test-MigrationServerAvailability <COMMON PARAMETERS>
Test-MigrationServerAvailability -Imap <SwitchParameter> -Port <Int32> -RemoteServer <Fqdn> [-Authentication <Basic | Digest | Ntlm | Fba | WindowsIntegrated | LiveIdFba | LiveIdBasic | WSSecurity | Certificate | NegoEx | OAuth | Adfs | Kerberos | Negotiate | LiveIdNegotiate | Misconfigured>] [-Security <None | Ssl | Tls>] <COMMON PARAMETERS>
Test-MigrationServerAvailability -ExchangeRemoteMove <SwitchParameter> -RemoteServer <Fqdn> [-Credentials <PSCredential>] <COMMON PARAMETERS>
Test-MigrationServerAvailability -Credentials <PSCredential> -ExchangeOutlookAnywhere <SwitchParameter> -ExchangeServer <String> -RPCProxyServer <Fqdn> [-Authentication <Basic | Digest | Ntlm | Fba | WindowsIntegrated | LiveIdFba | LiveIdBasic | WSSecurity | Certificate | NegoEx | OAuth | Adfs | Kerberos | Negotiate | LiveIdNegotiate | Misconfigured>] [-EmailAddress <SmtpAddress>] [-MailboxPermission <Admin | FullAccess>] [-SourceMailboxLegacyDN <String>] [-TestMailbox <MailboxIdParameter>] <COMMON PARAMETERS>
Test-MigrationServerAvailability -Autodiscover <SwitchParameter> -Credentials <PSCredential> -EmailAddress <SmtpAddress> -ExchangeOutlookAnywhere <SwitchParameter> [-MailboxPermission <Admin | FullAccess>] [-SourceMailboxLegacyDN <String>] [-TestMailbox <MailboxIdParameter>] <COMMON PARAMETERS>
Test-MigrationServerAvailability -Autodiscover <SwitchParameter> -Credentials <PSCredential> -EmailAddress <SmtpAddress> -ExchangeRemoteMove <SwitchParameter> <COMMON PARAMETERS>
Test-MigrationServerAvailability -Endpoint <MigrationEndpointIdParameter> <COMMON PARAMETERS>
COMMON PARAMETERS: [-Confirm [<SwitchParameter>]] [-Organization <OrganizationIdParameter>] [-WhatIf [<SwitchParameter>]]

Examples

EXAMPLE 1

For IMAP migrations, this example verifies the connection to the IMAP mail server imap.contoso.com.

Copy Code
Test-MigrationServerAvailability -Imap -RemoteServer imap.contoso.com -Port 143

EXAMPLE 2

This example uses the Autodiscover and ExchangeOutlookAnywhere parameters to verify the connection to an on-premises Exchange server in preparation for migrating on-premises mailboxes to Exchange Online. You can use a similar example to test the connection settings for a staged Exchange migration or a cutover Exchange migration.

Copy Code
$Credentials = Get-Credential
Copy Code
Test-MigrationServerAvailability -ExchangeOutlookAnywhere -Autodiscover -EmailAddress administrator@contoso.com -Credentials $Credentials

EXAMPLE 3

This example verifies the connection to a server running Microsoft Exchange Server 2003 named exch2k3.contoso.com and uses NTLM for the authentication method.

Copy Code
$Credentials = Get-Credential
Copy Code
Test-MigrationServerAvailability -ExchangeOutlookAnywhere -ExchangeServer exch2k3.contoso.com -Credentials $Credentials -RPCProxyServer mail.contoso.com -Authentication NTLM

EXAMPLE 4

This example verifies the connection settings to a remote server, and then uses those settings to create a migration endpoint.

Copy Code
$Credentials = Get-Credential
Copy Code
$TSMA = Test-MigrationServerAvailability -ExchangeRemoteMove -Autodiscover -EmailAddress administrator@contoso.com -Credentials $Credentials
Copy Code
New-MigrationEndpoint -ExchangeRemoteMove -Name ContosoEndpoint -ConnectionSettings $TSMA.ConnectionSettings

Detailed Description

The Test-MigrationServerAvailability cmdlet verifies that you can communicate with the on-premises mail server that houses the mailbox data that you want to migrate to cloud-based mailboxes. When you run this cmdlet, you must specify the migration type. You can specify whether to communicate with an IMAP server or with an Exchange server.

For an IMAP migration, this cmdlet uses the server's fully qualified domain name (FQDN) and a port number to verify the connection. If the verification is successful, use the same connection settings when you create a migration request with the New-MigrationBatch cmdlet.

For an Exchange migration, this cmdlet uses one of the following settings to communicate with the on-premises server:

  • For Exchange 2003, it uses the server's FQDN and credentials for an administrator account that can access the server.

  • For Exchange Server 2007 and later versions, you can connect using the Autodiscover service and the email address of an administrator account that can access the server.

If the verification is successful, you can use the same settings to create a migration endpoint. For more information, see:

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 Move and Migration Permissions" section in the Recipients Permissions topic.

Parameters

Parameter Required Type Description

Autodiscover

Required

System.Management.Automation.SwitchParameter

The Autodiscover parameter specifies that the cmdlet should use the Autodiscover service to obtain the connection settings for the target server.

Credentials

Required

System.Management.Automation.PSCredential

The Credentials parameter specifies the logon credentials for an account that can access mailboxes on the target server. Specify the username in the domain\username format or the user principal name (UPN) (user@example.com) format.

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.

EmailAddress

Required

Microsoft.Exchange.Data.SmtpAddress

The EmailAddress parameter specifies the email address of an administrator account that can access the remote server. This parameter is required when you use the Autodiscover parameter.

Endpoint

Required

Microsoft.Exchange.Management.Migration.MigrationEndpointIdParameter

The Endpoint parameter specifies the name of the migration endpoint to connect to. A migration endpoint contains the connection settings and other migration configuration settings. If you include this parameter, the Test-MigrationServerAvailability cmdlet attempts to verify the ability to connect to the remote server using the settings in the migration endpoint.

ExchangeOutlookAnywhere

Required

System.Management.Automation.SwitchParameter

The ExchangeOutlookAnywhere parameter specifies a migration type for migrating on-premises mailboxes to Exchange Online. Use this parameter if you plan to migrate mailboxes to Exchange Online using a staged Exchange migration or a cutover Exchange migration.

ExchangeRemoteMove

Required

System.Management.Automation.SwitchParameter

The ExchangeRemoteMove parameter specifies a type of migration where mailboxes are moved with full fidelity between two on-premises forests or between an on-premises forest and Exchange Online. Use this parameter if you plan to perform a cross-forest move or migrate mailboxes between an on-premises Exchange organization and Exchange Online in a hybrid deployment.

ExchangeServer

Required

System.String

The ExchangeServer parameter specifies the FQDN of the on-premises Exchange server. Use this parameter when you plan to perform a staged Exchange migration or a cutover Exchange migration. This parameter is required if you don't use the Autodiscover parameter.

Imap

Required

System.Management.Automation.SwitchParameter

The Imap parameter specifies an IMAP migration as the migration type. This parameter is required when you want to migrate data from an IMAP mail server to Exchange Online mailboxes.

Port

Required

System.Int32

The Port parameter specifies the TCP port number used by the IMAP migration process to connect to the target server. This parameter is required only for IMAP migrations.

The standard is to use port 143 for unencrypted connections, port 143 for Transport Layer Security (TLS), and port 993 for Secure Sockets Layer (SSL).

RemoteServer

Required

Microsoft.Exchange.Data.Fqdn

The RemoteServer parameter specifies the FQDN of the on-premises mail server. This parameter is required when you want to perform one of the following migration types:

  • Cross-forest move

  • Remote move (hybrid deployments)

  • IMAP migration

RPCProxyServer

Required

Microsoft.Exchange.Data.Fqdn

The RPCProxyServer parameter specifies the FQDN of the RPC proxy server for the on-premises Exchange server. This parameter is required when you don't use the Autodiscover parameter. Use this parameter if you plan to perform a staged Exchange migration or a cutover Exchange migration to migrate mailboxes to Exchange Online.

Authentication

Optional

Microsoft.Exchange.Data.Directory.SystemConfiguration.AuthenticationMethod

The Authentication parameter specifies the authentication method used by the on-premises mail server. Use Basic or NTLM. If you don't include this parameter, Basic authentication is used.

The parameter is only used for cutover Exchange migrations and staged Exchange migrations.

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.

MailboxPermission

Optional

Microsoft.Exchange.Data.Storage.Management.MigrationMailboxPermission

The MailboxPermission parameter specifies what permissions are assigned to the migration administrator account defined by the Credentials parameter. You make the permissions assignment to test the connectivity to a user mailbox on the source mail server when you’re testing the connection settings in preparation for a staged or cutover Exchange migration or for creating an Exchange Outlook Anywhere migration endpoint.

Specify one of the following values for the account defined by the Credentials parameter:

  • FullAccess   The account has been assigned the Full-Access permission to the mailboxes that will be migrated.

  • Admin   The account is a member of the Domain Admins group in the organization that hosts the mailboxes that will be migrated.

This parameter isn’t used for testing the connection to the remote server for a remote move migration or an IMAP migration.

Organization

Optional

Microsoft.Exchange.Configuration.Tasks.OrganizationIdParameter

The Organization parameter is reserved for internal Microsoft use.

Security

Optional

Microsoft.Exchange.Data.IMAPSecurityMechanism

The Security parameter specifies the encryption method used by the remote mail server. The options are None, Tls, or Ssl. Use this parameter only when testing the connection to an IMAP server or in preparation for creating a migration endpoint for an IMAP migration.

SourceMailboxLegacyDN

Optional

System.String

The SourceMailboxLegacyDN parameter specifies a mailbox on the target server. Use the LegacyExchangeDN for the on-premises test mailbox as the value for this parameter. The cmdlet will attempt to access this mailbox using the credentials for the administrator account on the target server.

TestMailbox

Optional

Microsoft.Exchange.Configuration.Tasks.MailboxIdParameter

The TestMailbox parameter specifies a mailbox on the target server. Use the primary SMTP address as the value for this parameter. The cmdlet will attempt to access this mailbox using the credentials for the administrator account on the target server.

WhatIf

Optional

System.Management.Automation.SwitchParameter

The WhatIf switch instructs the command to simulate the actions that it would take on the object. By using the WhatIf switch, you can view what changes would occur without having to apply any of those changes. 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.