[This topic is in progress.]

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

Topic Last Modified: 2011-09-12

Use the Test-OutlookConnectivity cmdlet to test end-to-end Microsoft Outlook client connectivity in the Microsoft Exchange Server 2010 organization. This includes testing for Outlook Anywhere (RPC/HTTP) and TCP-based connections.

Syntax

Test-OutlookConnectivity [-Identity <MailboxIdParameter>] -Protocol <HTTP | TCP | WS> [-Archive <$true | $false>] [-Confirm [<SwitchParameter>]] [-MailboxCredential <PSCredential>] [-MonitoringContext <SwitchParameter>] [-TotalTimeoutInMinutes <Int32>] [-TrustAnySslCert <SwitchParameter>] [-WhatIf [<SwitchParameter>]]
Test-OutlookConnectivity [-Identity <MailboxIdParameter>] -RpcTestType <Array | Server> [-Archive <$true | $false>] [-Confirm [<SwitchParameter>]] [-MailboxCredential <PSCredential>] [-MonitoringContext <SwitchParameter>] [-RpcAuthenticationType <Negotiate | NTLM | Kerberos>] [-RpcClientAccessServer <ClientAccessServerIdParameter>] [-RpcProxyAuthenticationType <Basic | NTLM | Negotiate>] [-RpcProxyTestType <External | Internal>] [-TotalTimeoutInMinutes <Int32>] [-TrustAnySslCert <SwitchParameter>] [-WhatIf [<SwitchParameter>]]
Test-OutlookConnectivity [-Identity <MailboxIdParameter>] -GetDefaultsFromAutodiscover <$true | $false> [-Archive <$true | $false>] [-Confirm [<SwitchParameter>]] [-MailboxCredential <PSCredential>] [-MonitoringContext <SwitchParameter>] [-RpcAuthenticationType <Negotiate | NTLM | Kerberos>] [-RpcClientAccessServer <ClientAccessServerIdParameter>] [-RpcProxyAuthenticationType <Basic | NTLM | Negotiate>] [-RpcProxyServer <ServerIdParameter>] [-TotalTimeoutInMinutes <Int32>] [-TrustAnySslCert <SwitchParameter>] [-WhatIf [<SwitchParameter>]]
Test-OutlookConnectivity [-Identity <MailboxIdParameter>] -GetDefaultsFromAutodiscover <$true | $false> -WSClientAccessServer <ClientAccessServerIdParameter> [-Archive <$true | $false>] [-Confirm [<SwitchParameter>]] [-MailboxCredential <PSCredential>] [-MonitoringContext <SwitchParameter>] [-TotalTimeoutInMinutes <Int32>] [-TrustAnySslCert <SwitchParameter>] [-WhatIf [<SwitchParameter>]]
Test-OutlookConnectivity [-Identity <MailboxIdParameter>] -WSTestType <Unknown | Internal | External> [-Archive <$true | $false>] [-Confirm [<SwitchParameter>]] [-MailboxCredential <PSCredential>] [-MonitoringContext <SwitchParameter>] [-TotalTimeoutInMinutes <Int32>] [-TrustAnySslCert <SwitchParameter>] [-WhatIf [<SwitchParameter>]]

Detailed Description

Running the Test-OutlookConnectivity cmdlet validates a user's Outlook connection. End-to-end verification includes testing for Autodiscover connectivity, creating a user profile, and logging on to the user's primary mailbox, or primary and on-premises archive mailbox. This cmdlet can validate both types of client connections, TCP/IP and Outlook Anywhere. If the cmdlet fails, the output notes the step that failed.

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 "Test Outlook Anywhere connectivity" entry in the Client Access Permissions topic.

Parameters

Parameter Required Type Description

Identity

Optional

Microsoft.Exchange.Configuration.Tasks.MailboxIdParameter

The Identity parameter specifies a target user mailbox. This value can be the mailbox GUID or can be the domain name\user, for example, contoso.com\erin. If the parameter isn't specified, the command looks for a test user in Active Directory. You need to create the test user with the New-TestCasConnectivityUser.ps1 script.

GetDefaultsFromAutodiscover

Required

System.Boolean

The GetDefaultsFromAutodiscover parameter specifies whether to get default values for all of the other parameters for the command from the Autodiscover service settings. If you run the command specifying values for other parameters, those values override the default values from the Autodiscover service. The default value for this parameter is $true.

Protocol

Required

Microsoft.Exchange.Monitoring.Protocol

The Protocol parameter specifies whether to test for Outlook Anywhere connectivity or directly test for RPC or TCP/IP connectivity. The value is either HTTP or TCP.

RpcTestType

Required

Microsoft.Exchange.Monitoring.RpcTestType

The RpcTestType parameter specifies which type of RPC endpoint the command should test. Valid values are Server or Array. If Server is specified, the command uses the local server as the RPC endpoint. If Array is specified, the command looks for a ClientAccessArray object in the same Active Directory site where the command is being run.

WSClientAccessServer

Required

Microsoft.Exchange.Configuration.Tasks.ClientAccessServerIdParameter

This parameter is reserved for internal Microsoft use.

WSTestType

Required

Microsoft.Exchange.Monitoring.VirtualDirectoryUriScope

The WSTestType parameter specifies type of servers that you want to include in your Outlook connectivity test. You can use the following values:

  • Unknown

  • Internal

  • External

  • The default value is Unknown.

Archive

Optional

System.Boolean

The Archive parameter specifies whether tests should be performed to connect to the user’s on-premises archive mailbox. You don’t need to specify a value for this parameter.

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.

MailboxCredential

Optional

System.Management.Automation.PSCredential

The MailboxCredential parameter specifies certain credentials to allow logon access to a user's mailbox. Use the parameter along with the Identity parameter to access a user's mailbox when you don't have access permissions.

MonitoringContext

Optional

System.Management.Automation.SwitchParameter

The MonitoringContext parameter specifies whether the command returns additional information that can be used with Microsoft System Center Operations Manager 2007. The default value is $false.

RpcAuthenticationType

Optional

Microsoft.Exchange.Monitoring.RpcAuthenticationType

The RpcAuthenticationType parameter specifies the authentication setting to test for the RPC layer. Using this parameter is helpful if a different authentication type is set at the RPC proxy virtual directory. You can use the following values:

  • NTLM

  • Kerberos

  • Negotiate

The default value is Negotiate.

RpcClientAccessServer

Optional

Microsoft.Exchange.Configuration.Tasks.ClientAccessServerIdParameter

The RpcClientAccessServer parameter specifies the target server with the Client Access server role installed that you want to test. This can be a server fully qualified domain name (FQDN) or a GUID.

RpcProxyAuthenticationType

Optional

Microsoft.Exchange.Monitoring.RpcProxyAuthenticationType

The RpcProxyAuthenticationType parameter specifies the authentication setting for the RPC Proxy endpoint. The value can be specified as Basic, NTLM, or Negotiate. There is no default value unless used with the GetDefaultsFromAutodiscover parameter.

RpcProxyServer

Optional

Microsoft.Exchange.Configuration.Tasks.ServerIdParameter

The RpcProxyServer parameter specifies whether to set the target RpcProxy server for testing. This parameter can be used when the RpcProxy server is different from the Client Access server.

RpcProxyTestType

Optional

Microsoft.Exchange.Monitoring.RpcProxyTestType

The RpcProxyTestType parameter specifies which HTTP endpoint the command should connect to. The value can be Internal or External. The Internal value refers to the local computer name (http://<localcomputername>, for example, http://CAS01). The External value refers to a public namespace (the external HTTP URL on the /rpc virtual directory, for example, http://mail.contoso.com).

TotalTimeoutInMinutes

Optional

System.Int32

The TotalTimeoutInMinutes parameter specifies the time limit, in minutes, for the command to wait for test results before ending the request. The default value is two minutes.

TrustAnySslCert

Optional

System.Management.Automation.SwitchParameter

The TrustAnySslCert parameter can be set to $true to ignore any Secure Sockets Layer (SSL) certificate warnings. The default value is $false.

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.

Errors

Error Description

 

Examples

EXAMPLE 1

This example tests the most common end-to-end Outlook connectivity scenario for Outlook Anywhere. This includes testing for connectivity through the Autodiscover service, creating a user profile, and logging on to the user mailbox. All of the required values are retrieved from the Autodiscover service. Because the Identity parameter isn't specified, the command uses the temporary test user that you've created using the New-TestCasConnectivityUser.ps1 script. This example command can be run to test TCP/IP connectivity by setting the Protocol parameter to RPC.

Copy Code
Test-OutlookConnectivity -Protocol:HTTP -GetDefaultsFromAutoDiscover:$true

EXAMPLE 2

This example tests for Outlook Anywhere connectivity using the local server as the RpcProxy endpoint as well as the RPC endpoint. Because the Identity parameter isn't specified, the command uses the temporary test user that you've created using the New-TestCasConnectivityUser.ps1 script. Modify this example to use the public external URL by setting the RpcProxyTestType parameter to External. Additionally, the example command can use the Client Access server array as the RPC endpoint by setting the RpcTestType parameter to Array. To only validate TCP/IP connectivity, omit the RpcProxyTestType parameter.

Copy Code
Test-OutlookConnectivity -RpcProxyTestType:Internal -RpcTestType:Server

EXAMPLE 3

This example validates Outlook connectivity through RpcProxy on one server to a different server running the Client Access server role with Basic for the outer authentication layer and NTLM for the inner authentication layer. Using these parameters should allow you to validate most types of Outlook connectivity configurations. This command can also be used with the GetDefaultsFromAutoDiscover parameter set to $true if you only need to override one or two parameters. This following command is similar to running a connectivity test using the RPC Ping utility but provides stronger validation.

Copy Code
Test-OutlookConnectivity -RpcProxyServer:RpcProxySrv01 -RpcProxyAuthenticationType:Basic -RpcClientAccessServer:CAS01 -RpcAuthenticationType:NTLM