Test-Mailflow

此 cmdlet 仅适用于本地 Exchange。

使用 Test-Mailflowcmdlet 诊断可否从邮箱服务器上的系统邮箱成功发送邮件,以及可否向该系统邮箱成功传递邮件。 也可以使用该 cmdlet 验证是否在定义的延迟阈值内在邮箱服务器之间发送电子邮件。

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

语法

Test-Mailflow
    [[-Identity] <ServerIdParameter>]
    [-AutoDiscoverTargetMailboxServer]
    [-ActiveDirectoryTimeout <Int32>]
    [-Confirm]
    [-DomainController <Fqdn>]
    [-ErrorLatency <Int32>]
    [-ExecutionTimeout <Int32>]
    [-MonitoringContext <Boolean>]
    [-WhatIf]
    [<CommonParameters>]
Test-Mailflow
    -CrossPremises <Boolean>
    [-ActiveDirectoryTimeout <Int32>]
    [-CrossPremisesExpirationTimeout <EnhancedTimeSpan>]
    [-CrossPremisesPendingErrorCount <Int32>]
    [-Confirm]
    [-DomainController <Fqdn>]
    [-ErrorLatency <Int32>]
    [-ExecutionTimeout <Int32>]
    [-MonitoringContext <Boolean>]
    [-WhatIf]
    [<CommonParameters>]
Test-Mailflow
    [[-Identity] <ServerIdParameter>]
    -TargetDatabase <DatabaseIdParameter>
    [-ActiveDirectoryTimeout <Int32>]
    [-Confirm]
    [-DomainController <Fqdn>]
    [-ErrorLatency <Int32>]
    [-ExecutionTimeout <Int32>]
    [-MonitoringContext <Boolean>]
    [-WhatIf]
    [<CommonParameters>]
Test-Mailflow
    [[-Identity] <ServerIdParameter>]
    -TargetEmailAddress <String>
    [-TargetEmailAddressDisplayName <String>]
    [-ActiveDirectoryTimeout <Int32>]
    [-Confirm]
    [-DomainController <Fqdn>]
    [-ErrorLatency <Int32>]
    [-ExecutionTimeout <Int32>]
    [-MonitoringContext <Boolean>]
    [-WhatIf]
    [<CommonParameters>]
Test-Mailflow
    [[-Identity] <ServerIdParameter>]
    -TargetMailboxServer <ServerIdParameter>
    [-ActiveDirectoryTimeout <Int32>]
    [-Confirm]
    [-DomainController <Fqdn>]
    [-ErrorLatency <Int32>]
    [-ExecutionTimeout <Int32>]
    [-MonitoringContext <Boolean>]
    [-WhatIf]
    [<CommonParameters>]
Test-Mailflow
    [[-Identity] <ServerIdParameter>]
    [-ActiveDirectoryTimeout <Int32>]
    [-Confirm]
    [-DomainController <Fqdn>]
    [-ErrorLatency <Int32>]
    [-ExecutionTimeout <Int32>]
    [-MonitoringContext <Boolean>]
    [-WhatIf]
    [<CommonParameters>]

说明

Test-Mailflow cmdlet 测试邮件的提交、传输和送达。 此 cmdlet 验证每个邮箱服务器是否可以成功地向其自身发送邮件。 还可以用此 cmdlet 验证一个邮箱服务器上的“系统邮箱”是否可以将邮件成功地发送到另一个邮箱服务器上的“系统邮箱”。 测试中涉及的所有服务器上都必须有系统邮箱。

测试邮件发送到目标用户邮箱或系统邮箱。 邮件主题为 Test-Mailflow <GUID>,消息正文包含文本 This is a Test-Mailflow probe message

Test-Mailflow 结果显示在屏幕上。 结果中需要关注的值为:

  • TestMailflowResult:返回的值通常为 Success 或 *FAILURE*。
  • MessageLatencyTime:完成测试 (传递测试消息) 所需的时间。 该值使用语法 hh:mm:ss.ffff,其中 hh 表示小时,mm 表示分钟,ss 表示秒,ffff 表示秒的分数。

可以通过将输出管道到ConvertTo-Html或ConvertTo-Csv并将 > <filename> 添加到 命令,将Test-Mailflow结果写入文件。 例如:Test-Mailflow -AutoDiscoverTargetMailboxServer | ConvertTo-Csv > "C:\My Documents\test-mailflow 2020-05-01.csv"

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

示例

示例 1

Test-Mailflow Mailbox1 -TargetMailboxServer Mailbox2

本示例测试从服务器名 Mailbox1 到服务器名 Mailbox2 的邮件流。 请注意,您必须在连接到 Mailbox1 的同时运行此命令。

示例 2

Test-Mailflow -TargetEmailAddress john@contoso.com

此示例测试从运行此命令的本地邮箱服务器到电子邮件地址 john@contoso.com的邮件流。

参数

-ActiveDirectoryTimeout

ActiveDirectoryTimeout 参数指定该任务提供有关延迟的信息性消息之前所经过的秒数。 默认值为 15 秒。

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

-AutoDiscoverTargetMailboxServer

AutoDiscoverTargetMailboxServer 开关指定是否自动填充测试邮件发送到的目标邮箱服务器的列表。 不必为此开关指定值。

该任务查询 Active Directory 以发现所有邮箱服务器,然后向每个服务器发送一封测试邮件。

如果您使用此开关,则不能使用 CrossPremises、TargetDatabase、TargetEmailAddress 或 TargetMailboxServer 参数。

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

-Confirm

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, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-CrossPremises

CrossPremises 参数指定是否将在跨内部部署模式下执行邮件流测试。

如果您的组织使用的是跨内部部署,并要验证跨内部部署邮件流,请将此参数设置为 $true。

如果您使用此参数,则不能使用 AutoDiscoverTargetMailboxServer、TargetDatabase、TargetEmailAddress 或 TargetMailboxServer 参数。

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

-CrossPremisesExpirationTimeout

当 Microsoft System Center Operations Manager 2007 代理运行此 cmdlet 以实现异步监视时,使用 CrossPremisesExpirationTimeout 参数。 建议您不要在手动运行此 cmdlet 时使用该参数。

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

-CrossPremisesPendingErrorCount

当 System Center Operations Manager 2007 代理运行此 cmdlet 以实现异步监视时,使用 CrossPremisesPendingErrorCount 参数。 建议您不要在手动运行此 cmdlet 时使用该参数。

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

-DomainController

DomainController 参数指定此 cmdlet 从 Active Directory 读取数据或向其写入数据时使用的域控制器。 可以使用完全限定的域名 (FQDN) 来标识域控制器。 例如,dc01.contoso.com。

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

-ErrorLatency

ErrorLatency 参数指定在 Microsoft System Center Operations Manager 2007 中记录错误事件之前等待测试邮件送达的时间。 将测试邮件发送到本地邮箱服务器时,默认时间值为 15 秒;将测试邮件发送到远程邮箱服务器时,默认时间值为 180 秒。

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

-ExecutionTimeout

ExecutionTimeout 参数指定在确定测试失败之前此任务可以运行的最长时间。 如果在该时间过期之前没有收到任何测试邮件或送达报告,则此任务结束并报告错误。 在 Exchange 命令行管理程序中运行任务时,默认设置为 240 秒。 如果使用 MonitoringContext 参数,则默认设置是 15 秒。

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

-Identity

Identity 参数指定发送测试邮件的源邮箱服务器名称。 可以使用唯一标识该服务器的任何值。 例如:

  • 名称
  • FQDN
  • 可分辨名称 (DN)
  • Exchange 旧版 DN

如果您不使用此参数,则使用的是本地邮箱服务器。

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

-MonitoringContext

MonitoringContext 参数指定是否在结果中添加相关的监视事件和性能计数器。 有效值包含:

  • $true:监视事件和性能计数器包含在命令结果中。 通常,在将输出传递到 Microsoft System Center Operations Manager (SCOM) 时,可以在结果中包含监视事件和性能计数器。
  • $false:监视事件和性能计数器不包括在命令结果中。 此值为默认值。
Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-TargetDatabase

TargetDatabase 参数指定测试邮件发送的目标邮箱数据库。 可以使用任何能够唯一标识此数据库的值。 例如:

  • 名称
  • 可分辨名称 (DN)
  • GUID

不能将此参数与 AutoDiscoverTargetMailboxServer、CrossPremises、TargetEmailAddress 或 TargetMailboxServer 参数一起使用。

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

-TargetEmailAddress

TargetEmailAddress 参数指定测试邮件发送的目标邮箱的 SMTP 地址。 使用此参数可以向远程林中的邮箱服务器发送测试邮件。 如果使用此参数,则测试始终是远程测试。

如果您使用此参数,则不能使用 AutoDiscoverTargetMailboxServer、CrossPremises、TargetDatabase 或 TargetMailboxServer 参数。

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

-TargetEmailAddressDisplayName

当您使用 TargetEmailAddress 参数时,TargetEmailAddressDisplayName 参数会指定 Microsoft System Center Operations Manager 2007 中的事件和报告使用的自定义显示名称。 如果您不使用 TargetEmailAddressDisplayName 参数,那么事件和报告使用 TargetEmailAddress 参数指定的电子邮件地址值。

此参数仅适用于 TargetEmailAddress 参数,并且对 Microsoft System Center Operations Manager 外部的 cmdlet 输出没有影响。

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

-TargetMailboxServer

TargetMailboxServer 参数指定要向其发送测试邮件的本地 Exchange 组织中的一个或多个邮箱服务器。 可以使用唯一标识该服务器的任何值。 例如:

  • 名称
  • FQDN
  • 可分辨名称 (DN)
  • Exchange 旧版 DN

如果您使用此参数,则不能使用 AutoDiscoverTargetMailboxServer、CrossPremises、TargetDatabase 或 TargetEmailAddress 参数。

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

-WhatIf

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, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

输入

Input types

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

输出

Output types

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