Test-OutlookConnectivity

此 cmdlet 仅适用于本地 Exchange。

使用 Test-OutlookConnectivity cmdlet 测试 Microsoft Exchange 组织中的端到端Microsoft Outlook 客户端连接。 这包括通过 HTTP) 对 Outlook Anywhere (RPC 和通过 HTTP 连接的 MAPI 进行测试。

有关以下语法部分的参数设置的详细信息,请参阅 Exchange cmdlet 语法

语法

Test-OutlookConnectivity
    [-ProbeIdentity] <String>
    [-Credential <PSCredential>]
    [-Hostname <String>]
    [-MailboxId <MailboxIdParameter>]
    [-RunFromServerId <ServerIdParameter>]
    [-TimeOutSeconds <String>]
    [<CommonParameters>]
Test-OutlookConnectivity
    [[-Identity] <MailboxIdParameter>]
    -Protocol <Protocol>
    [-Archive <Boolean>]
    [-Confirm]
    [-MailboxCredential <PSCredential>]
    [-MonitoringContext]
    [-TotalTimeoutInMinutes <Int32>]
    [-TrustAnySslCert]
    [-WhatIf]
    [<CommonParameters>]
Test-OutlookConnectivity
    [[-Identity] <MailboxIdParameter>]
    -GetDefaultsFromAutodiscover <Boolean>
    [-Archive <Boolean>]
    [-Confirm]
    [-MailboxCredential <PSCredential>]
    [-MonitoringContext]
    [-RpcAuthenticationType <RpcAuthenticationType>]
    [-RpcClientAccessServer <ClientAccessServerIdParameter>]
    [-RpcProxyAuthenticationType <RPCProxyAuthenticationType>]
    [-RpcProxyServer <ServerIdParameter>]
    [-TotalTimeoutInMinutes <Int32>]
    [-TrustAnySslCert]
    [-WhatIf]
    [<CommonParameters>]
Test-OutlookConnectivity
    [[-Identity] <MailboxIdParameter>]
    -RpcTestType <RpcTestType>
    [-Archive <Boolean>]
    [-Confirm]
    [-MailboxCredential <PSCredential>]
    [-MonitoringContext]
    [-RpcAuthenticationType <RpcAuthenticationType>]
    [-RpcClientAccessServer <ClientAccessServerIdParameter>]
    [-RpcProxyAuthenticationType <RPCProxyAuthenticationType>]
    [-RpcProxyTestType <RpcProxyTestType>]
    [-TotalTimeoutInMinutes <Int32>]
    [-TrustAnySslCert]
    [-WhatIf]
    [<CommonParameters>]
Test-OutlookConnectivity
    [[-Identity] <MailboxIdParameter>]
    -WSTestType <VirtualDirectoryUriScope>
    [-Archive <Boolean>]
    [-Confirm]
    [-MailboxCredential <PSCredential>]
    [-MonitoringContext]
    [-TotalTimeoutInMinutes <Int32>]
    [-TrustAnySslCert]
    [-WhatIf]
    [<CommonParameters>]

说明

运行 Test-OutlookConnectivity cmdlet 会验证由提供的参数定义的 Outlook 连接。 命令能够验证单个邮箱。

Test-OutlookConnectivity cmdlet 运行与监视探测相同的进程。 Microsoft Exchange Health Manager (MSExchangeHM) 服务必须正在运行,并且已在要测试的计算机上创建了 Outlook 探测。 需要选择其中一个 Outlook 探测标识来运行测试。 使用 Get-MonitoringItemIdentity cmdlet 查看哪些探测处于活动状态。

此示例列出邮箱服务器上的后端服务中运行的探测: Get-MonitoringItemIdentity -Server MailboxServer1 -Identity outlook.protocol | ?{$_.Name -like '*probe'}

此示例列出邮箱服务器上的客户端访问服务中运行的探测: Get-MonitoringItemIdentity -Server MailboxServer1 -Identity outlook | ?{$_.Name -like '*probe'}

有关探测和监视框架的详细信息,请参阅 托管可用性托管可用性和服务器运行状况自定义托管可用性

默认情况下,cmdlet 使用附加到指定探测的测试监视帐户。 您还可以通过 MailboxId 参数输入不同的邮箱。 以下是选项和结果。

  • 未指定 MailboxId 和 Credential:使用系统测试凭据针对测试邮箱进行常规连接测试。
  • 指定了 MailboxId,凭据不是:使用系统测试凭据对特定邮箱进行连接测试。
  • MailboxId 和 Credential 都已指定:您将获得特定邮箱的连接性测试,以及凭据提供的对该邮箱有效的测试

您必须先获得权限,然后才能运行此 cmdlet。 虽然本主题中列出了此 cmdlet 的所有参数,但如果这些参数并未包含在分配给您的权限中,那么您将无法使用这些参数。 若要查找在贵组织中运行任何 cmdlet 或参数所需的权限,请参阅 Find the permissions required to run any Exchange cmdlet

示例

示例 1

Test-OutlookConnectivity -ProbeIdentity OutlookMapiHttp.Protocol\OutlookMapiHttpSelfTestProbe

在 Exchange 2013 或更高版本中,本示例在当前连接到的邮箱服务器上通过 HTTP OutlookRpcSelfTestProbe 运行 MAPI。

示例 2

Test-OutlookConnectivity "Outlook.Protocol\OutlookRpcDeepTestProbe\Mailbox Database 1234512345" -RunFromServerId PrimaryMailbox -MailboxId johnd@contoso.com

在 Exchange 2013 或更高版本中,本示例从“PrimaryMailbox”服务器为“邮箱数据库1234512345”装载的邮箱“johnd@contoso.com运行 OutlookRpcDeepTestProbe。 由于 Credential 参数未指定,探测器将使用默认的测试凭据。

示例 3

Test-OutlookConnectivity -Protocol HTTP -GetDefaultsFromAutoDiscover $true

在 Exchange 2010 中,此示例测试 Outlook Anywhere 最常见的端到端 Outlook 连接方案。 这包括通过自动发现服务测试连接性、创建用户配置文件以及登录到用户邮箱。 从自动发现服务检索所有必需的值。 由于未指定 Identity 参数,因此该命令使用使用 New-TestCasConnectivityUser.ps1 脚本创建的临时测试用户。 可以通过将 Protocol 参数设置为 RPC 来运行此示例命令来测试 TCP/IP 连接。

示例 4

Test-OutlookConnectivity -RpcProxyTestType:Internal -RpcTestType:Server

在 Exchange 2010 中,此示例使用本地服务器作为 RpcProxy 终结点以及 RPC 终结点测试 Outlook Anywhere 连接。 由于未指定 Identity 参数,因此该命令使用使用 New-TestCasConnectivityUser.ps1 脚本创建的临时测试用户。 通过将 RpcProxyTestType 参数设置为 External,修改此示例以使用公共外部 URL。 此外,示例命令可以通过将 RpcTestType 参数设置为 Array 来使用客户端访问服务器数组作为 RPC 终结点。 若要仅验证 TCP/IP 连接,请省略 RpcProxyTestType 参数。

示例 5

Test-OutlookConnectivity -RpcProxyServer RpcProxySrv01 -RpcProxyAuthenticationType Basic -RpcClientAccessServer CAS01 -RpcAuthenticationType NTLM

在 Exchange 2010 中,本示例通过一台服务器上的 RpcProxy 验证 Outlook 与运行客户端访问服务器角色的不同服务器的连接,其中“基本”用于外部身份验证层,NTLM 用于内部身份验证层。 使用这些参数应允许验证大多数类型的 Outlook 连接配置。 如果只需要重写一个或两个参数,则此命令还可以与设置为 $true 的 GetDefaultsFromAutoDiscover 参数一起使用。 以下命令类似于使用 RPC Ping 实用工具运行连接测试,但提供更强的验证。

参数

-Archive

此参数仅在 2010 Exchange Server可用。

Archive 参数指定是否应执行测试以连接到用户的本地存档邮箱。 有效值包含:

$true:连接到用户的本地存档邮箱。

$false:不要连接到用户的本地邮箱。 此值为默认值。

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010

-Confirm

此参数仅在 2010 Exchange Server可用。

Confirm 开关指定是否显示确认提示。 此开关对 cmdlet 造成的影响取决于在你继续操作之前 cmdlet 是否需要确认。

  • 破坏性 cmdlet (例如,Remove-* cmdlet) 具有内置的暂停,该暂停会强制你在继续操作之前确认命令。 对于这些 cmdlet,您可以使用此确切语法跳过确认提示:-Confirm:$false
  • 大多数其他 cmdlet (例如,New-* 和 Set-* cmdlet) 没有内置暂停。 对于这些 cmdlet,指定不含值的 Confirm 开关会引入暂停,从而强制要求你先确认命令,然后再继续操作。
Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010

-Credential

Credential 参数指定探测器使用的凭据。 系统测试凭据默认使用

此参数的值需要 Get-Credential cmdlet。 要暂停此命令并接收凭据提示,请使用值 (Get-Credential)。 或者,在运行此命令之前,请将凭据存储在变量(例如,$cred = Get-Credential)中,然后将变量名称 ($cred) 用作此参数。 有关详细信息,请参阅 Get-Credential

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-GetDefaultsFromAutodiscover

此参数仅在 2010 Exchange Server可用。

GetDefaultsFromAutodiscover 参数指定是否从自动发现服务设置中获取命令的所有其他参数的默认值。 如果运行为其他参数指定值的命令,这些值将覆盖自动发现服务的默认值。 此参数的默认值是 $true。

Type:Boolean
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010

-Hostname

Hostname 参数指定探测的协议终结点目标。 可以使用特定的邮箱服务器或通过分布式名称服务服务器进行路由。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-Identity

此参数仅在 2010 Exchange Server可用。

Identity 参数指定目标用户邮箱。 可以使用能够唯一标识邮箱的任意值。 例如:

  • 名称
  • 别名
  • 可分辨名称 (DN)
  • 可分辨名称 (DN)
  • 域\用户名
  • 电子邮件地址
  • GUID
  • LegacyExchangeDN
  • SamAccountName
  • 用户 ID 或用户主体名称 (UPN)

如果不使用此参数,该命令将在 Active Directory 中查找之前使用 New-TestCasConnectivityUser.ps1 脚本创建的测试用户。

Type:MailboxIdParameter
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False
Applies to:Exchange Server 2010

-MailboxCredential

此参数仅在 2010 Exchange Server可用。

MailboxCredential 参数指定允许登录访问用户邮箱的某些凭据。 当你没有访问权限时,请使用 参数和 Identity 参数访问用户的邮箱。

此参数的值需要 Get-Credential cmdlet。 要暂停此命令并接收凭据提示,请使用值 (Get-Credential)。 或者,在运行此命令之前,请将凭据存储在变量(例如,$cred = Get-Credential)中,然后将变量名称 ($cred) 用作此参数。 有关详细信息,请参阅 Get-Credential

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False
Applies to:Exchange Server 2010

-MailboxId

MailboxID 参数指定目标邮箱。

在 Exchange 2013 或更高版本中,Identity 参数指定目标用户邮箱。 可以使用能够唯一标识邮箱的任意值。 例如:

  • 名称
  • 别名
  • 可分辨名称 (DN)
  • 可分辨名称 (DN)
  • 域\用户名
  • 电子邮件地址
  • GUID
  • LegacyExchangeDN
  • SamAccountName
  • 用户 ID 或用户主体名称 (UPN)

如果不使用此参数,该命令将使用测试帐户。

Type:MailboxIdParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False
Applies to:Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-MonitoringContext

此参数仅在 2010 Exchange Server可用。

MonitoringContext 开关在结果中添加相关的监视事件和性能计数器。 不必为此开关指定值。

通常,在将输出传递到 Microsoft System Center Operations Manager (SCOM) 时,可以在结果中包含监视事件和性能计数器。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010

-ProbeIdentity

ProbeIdentity 参数指定要使用的探测器。 有效值包含:

Outlook Anywhere 通过 HTTP) 探测 (RPC:

  • Outlook.Protocol\OutlookRpcSelfTestProbe:验证 RPC/HTTP 终结点是否能够接收邮箱服务器上的流量。 它不会尝试登录到邮箱。 那是连接性的高层次检查。
  • Outlook.Protocol\OutlookRpcDeepTestProbe:验证 RPC/HTTP 终结点是否在邮箱服务器上正常工作。 它将尝试连接到邮箱并登录。 由于未指定任何数据库,因此它将尝试连接到 Get-MailboxDatabase cmdlet 返回的第一个数据库。
  • Outlook.Protocol\OutlookRpcDeepTestProbe\<Case-sensitive Mailbox Database Name>:验证 RPC/HTTP 终结点是否在邮箱服务器上工作。 它将尝试连接到指定邮箱数据库中的邮箱并登录。 如果邮箱数据库名称包含空格,请将整个值括在引号 (,例如 "Outlook.Protocol\OutlookRpcDeepTestProbe\Mailbox Database 0352791530" ,) 。

通过 HTTP 探测的 MAPI:

  • OutlookMapiHttp.Protocol\OutlookMapiHttpSelfTestProbe:验证 MAPI/HTTP 终结点是否能够接收邮箱服务器上的流量。 它不会尝试登录到邮箱。 那是连接性的高层次检查。
  • OutlookMapiHttp.Protocol\OutlookMapiHttpDeepTestProbe:验证 MAPI/HTTP 终结点是否在邮箱服务器上正常工作。 它将尝试连接并登录到邮箱。 由于未指定任何数据库,因此它将尝试连接到 Get-MailboxDatabase cmdlet 返回的第一个数据库。
  • OutlookMapiHttp.Protocol\OutlookRpcDeepTestProbe\<Case-sensitive Mailbox Database Name>:验证 MAPI/HTTP 终结点是否在邮箱服务器上正常工作。 它将尝试连接并登录到指定数据库中的邮箱。 如果邮箱数据库名称包含空格,请将整个值括在引号 (,例如 "Outlook.Protocol\OutlookRpcDeepTestProbe\Mailbox Database 0352791530" ,) 。
Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-Protocol

此参数仅在 2010 Exchange Server可用。

Protocol 参数指定是测试 Outlook Anywhere 连接,还是直接测试 RPC 或 TCP/IP 连接。 该值为 HTTP 或 TCP。

Type:Protocol
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010

-RpcAuthenticationType

此参数仅在 2010 Exchange Server可用。

RpcAuthenticationType 参数指定要测试 RPC 层的身份验证设置。 如果在 RPC 代理虚拟目录中设置了其他身份验证类型,则使用此参数很有用。 可以使用下列值:

  • NTLM
  • Kerberos
  • 洽谈

默认值为 Negotiate。

Type:RpcAuthenticationType
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010

-RpcClientAccessServer

此参数仅在 2010 Exchange Server可用。

RpcClientAccessServer 参数指定安装了要测试的客户端访问服务器角色的目标服务器。 这可以是服务器完全限定的域名 (FQDN) 或 GUID。

Type:ClientAccessServerIdParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False
Applies to:Exchange Server 2010

-RpcProxyAuthenticationType

此参数仅在 2010 Exchange Server可用。

RpcProxyAuthenticationType 参数指定 RPC 代理终结点的身份验证设置。 该值可以指定为 Basic、NTLM 或 Negotiate。 除非与 GetDefaultsFromAutodiscover 参数一起使用,否则没有默认值。

Type:RPCProxyAuthenticationType
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010

-RpcProxyServer

此参数仅在 2010 Exchange Server可用。

RpcProxyServer 参数指定是否设置用于测试的目标 RpcProxy 服务器。 当 RpcProxy 服务器与客户端访问服务器不同时,可以使用此参数。

Type:ServerIdParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False
Applies to:Exchange Server 2010

-RpcProxyTestType

此参数仅在 2010 Exchange Server可用。

RpcProxyTestType 参数指定命令应连接到的 HTTP 终结点。 有效值包含:

  • Internal:指本地计算机名称 (https://<localcomputername>,例如, https://CAS01) 。
  • External:指 /rpc 虚拟目录上的外部 HTTP URL (公共命名空间, https://mail.contoso.com 例如,) 。
Type:RpcProxyTestType
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010

-RpcTestType

此参数仅在 2010 Exchange Server可用。

RpcTestType 参数指定命令应测试的 RPC 终结点类型。 有效值包含:

  • 服务器:命令使用本地服务器作为 RPC 终结点。
  • Array:命令在本地 Active Directory 站点中查找 ClientAccessArray 对象。
Type:RpcTestType
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010

-RunFromServerId

RunFromServerID 参数指定要从中运行探测器的服务器。

Type:ServerIdParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-TimeOutSeconds

TimeOutSeconds 参数指定结束探测器前的超时周期(以秒为单位)。 默认值为 30 秒。 输入的数字可以加上双引号。 10 或“10”将正常工作。 任何输入错误都将默认返回至 30 秒。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-TotalTimeoutInMinutes

此参数仅在 2010 Exchange Server可用。

TotalTimeoutInMinutes 参数指定命令在结束请求之前等待测试结果的时间限制(以分钟为单位)。 默认值为两分钟。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010

-TrustAnySslCert

此参数仅在 2010 Exchange Server可用。

TrustAnySSLCertificate 开关允许 Exchange 接受来自不受信任的证书颁发机构的证书, (CA) 。 不必为此开关指定值。

TrustAnySSLCertificate 开关指定是否忽略安全套接字层 (SSL) 证书验证失败。 您无需使用此开关指定值。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010

-WhatIf

此参数仅在 2010 Exchange Server可用。

WhatIf 开关模拟命令操作。 可以使用此开关在不实际应用将会发生的更改的情况下预览这些更改。 不必为此开关指定值。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010

-WSTestType

此参数仅在 2010 Exchange Server可用。

WSTestType 参数指定要包含在 Outlook 连接测试中的服务器类型。 可以使用下列值:

  • 未知 (这是默认值。)
  • 内部
  • 外部
Type:VirtualDirectoryUriScope
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010

输入

Input types

若要了解此 cmdlet 接受的输入类型,请参阅 cmdlet 的输入和输出类型。 如果 cmdlet 的"输入类型"字段为空,则表明此 cmdlet 不接受输入数据。

输出

Output types

若要了解此 cmdlet 接受的返回类型(亦称为"输出类型"),请参阅 cmdlet 的输入和输出类型。 如果"输出类型"字段为空,则表明此 cmdlet 不返回任何数据。