使用 Exchange 命令行管理程序管理队列

 

适用于: Exchange Server 2010 SP2, Exchange Server 2010 SP3

上一次修改主题: 2015-03-09

本主题介绍了如何使用 Exchange 命令行管理程序中的 cmdlet 和参数集创建查询、检索结果并执行修改操作。有关队列任务以及如何使用这些任务来监视和排除故障的详细信息,请参阅了解传输队列

在 Microsoft Exchange Server 2010 中,您可以使用命令行管理程序来执行管理和配置任务,并创建脚本以自动执行任务。您还可使用命令行管理程序查看有关服务器上队列的信息以及这些队列中的邮件,并对队列和邮件项目执行管理操作。这些操作可帮助您排除邮件流中的故障,并识别垃圾邮件。有关如何使用命令行管理程序的详细信息,请参阅结合使用 PowerShell 和 Exchange 2010(Exchange 命令行管理程序)

若要了解与队列相关的管理任务,请参阅管理传输队列

目录

管理队列和邮件

队列 Cmdlet

队列任务参数集

管理队列和邮件

队列任务分为两个类别:

  • 查看操作可显示服务器上的队列和排队的邮件,并选择这些数据在显示时如何进行分组和排序。

  • 修改操作可更改队列和邮件的状态。

两种类型的任务都需要通过使用远程过程调用 (RPC) 连接到传输工作进程来访问数据。

默认情况下,队列查看器专门处理位于队列查看器连接到的服务器上的队列数据库,从而运行任务。但是,除了正在运行队列查看器任务的服务器,您还可以连接到其他不同的服务器。

有关 Exchange 2010 传输进程的详细信息,请参阅 了解传输管道。有关如何使用命令行管理程序查看队列和邮件的详细信息,请参阅查看队列查看排队邮件属性

返回顶部

队列 Cmdlet

下表列出了在命令行管理程序中可用于管理队列和队列中的邮件的 cmdlet。有关如何使用各个 cmdlet 的详细信息,请参阅“详细信息”列中列出的帮助主题。

队列 cmdlet

Cmdlet 用法 详细信息

Export-Message

此 cmdlet 用于将邮件副本保存在管理员指定的文件路径中。

Export-Message

从队列导出邮件

Get-Message

此 cmdlet 用于显示当前在队列中等待传递的邮件的详细信息。可以使用 Get-Message cmdlet 检索一组邮件,然后通过管道将结果传递到其他某个邮件管理 cmdlet。

Get-Message

查看排队邮件属性

Get-Queue

此 cmdlet 用于显示传输服务器上的队列的配置详细信息。可以使用 Get-Queue cmdlet 检索一组队列,然后通过管道将结果传递到其他某个队列管理 cmdlet。

Get-Queue

查看队列

Remove-Message

此 cmdlet 用于删除队列中的邮件。可以选择是否发送未送达报告 (NDR)。

Remove-Message

从队列中删除邮件

Resume-Message

此 cmdlet 用于重新传递先前挂起的邮件。可以使用 Resume-Message cmdlet 将病毒邮件队列中的邮件重新提交到提交队列,以便分类程序重新处理。

Resume-Message

恢复邮件

重新提交队列中的邮件

Resume-Queue

此 cmdlet 用于重新传递先前挂起的队列中的邮件。

Resume-Queue

恢复队列

Retry-Queue

此 cmdlet 用于强制当前处于“重试”状态的队列进行连接尝试。此连接尝试将覆盖下一个已安排的重试。也可以将 Retry-Queue cmdlet 和 Resubmit 参数结合使用,将处于传递队列或无法到达队列中的邮件发送到提交队列,以便分类程序重新处理。

Retry-Queue

重试队列

重新提交队列中的邮件

Suspend-Message

此 cmdlet 用于挂起 Exchange 2010 传输服务器上的队列中的邮件传递。

Suspend-Message

挂起邮件

Suspend-Queue

此 cmdlet 用于挂起 Exchange 2010 传输服务器上的队列的传出活动。

Suspend-Queue

搁置队列

返回顶部

队列任务参数集

队列任务支持多个参数集。这些参数集如下所示:Identity、Filter 和 Queue。Identity、Filter 和 Queue 参数集不能在一个命令中组合使用。Queue 参数集只能与邮件命令一起使用。

您还可以将命令行管理程序中可用的高级分页参数与 Identity、Filter 和 Queue 参数集组合使用。通过将高级分页参数与 Get-MessageGet-Queue cmdlet 一起使用,可以控制结果集的排序和显示方式。本主题后面部分的“高级分页参数”中的表介绍了高级分页参数。

使用修改邮件或队列的命令时,必须使用 Identity、Filter 或 Queue 参数集。如果未提供任何参数,则 Get-MessageGet-Queue cmdlet 将显示本地服务器上的所有邮件或队列对象。

如果队列或邮件查询的结果集包含的项目多于 250,000 个,则会发生错误,系统将提示您应用筛选器,以减少结果数。

Identity 参数

如果要查看或对其执行操作的特定邮件或队列是已知的,请使用 Identity 参数。按标识进行搜索的速度快于创建与筛选器相同的查询。

服务器名称可以用主机名或完全限定的域名 (FQDN) 来表示。可以输入远程服务器的名称作为标识的一部分,来启动与该服务器的 RPC 连接,以便查询该服务器上的队列。如果不使用服务器名称,则默示使用本地主机。

为修改操作提供标识时,所标识的对象必须是经过完整定义的,并且必须是唯一的。如果标识不是显式的,则操作不能执行。如果省略标识的服务器部分,则假定为本地计算机。

Identity 参数作为 Get-QueueGet-Message cmdlet 的一部分使用时,Identity 参数支持使用通配符表达式。

队列标识

持久性队列有唯一名称,并且可以按名称指定。将为传递队列分配唯一的数据库标识。可以使用此数据库标识来指定队列,也可以使用传递目标的名称来指定队列。若要通过指定队列的唯一数据库标识以对队列执行操作,必须首先运行 Get-Queue cmdlet。数据库标识会返回到结果中。下表列出了队列的可接受标识格式。

队列标识格式

队列标识格式 用法

Server\QueueJetID (Int64)

传递队列完整的、唯一的标识。

\QueueJetID

本地服务器上队列的标识。省略了服务器名称。因此,表示使用本地服务器。

Server\*

指定服务器上的任何队列。

Server\NextHopDomain

指定服务器上的队列,其中包含等待传递到特定远程域的邮件。

\NextHopDomain

包含将发往特定域并且位于本地服务器上的邮件的队列。

Server\Poison

位于指定服务器上的病毒邮件队列。

Server\Submission

包含正在等待分类程序进行处理的项目的队列。

Server\Unreachable

包含无法进行路由并且位于指定服务器上的项目的队列。

以下代码是如何将队列标识与 Get-Queue cmdlet 一起使用的示例。此示例将返回包含所有相关队列的列表,这些队列包含的邮件将传递到名称以 Contoso.com 结尾的 SMTP 域。此示例还会将结果集格式化为详细列表。

Get-Queue -Identity Server\*Contoso.com | format-list

邮件标识

邮件标识是唯一的数据库邮件项目和队列标识的组合。当邮件进入排队的可扩展存储引擎 (ESE) 数据库(以前称为 Jet)时,将为邮件分配一个整数形式的标识,此整数将附加到队列标识末尾,以创建邮件标识。

若要通过指定邮件的数据库标识以对邮件执行操作,必须首先运行 Get-Message cmdlet。标识将在结果中返回。如果要连接到远程服务器,则可以包括作为邮件标识一部分的服务器名称。如果省略服务器名称,则会假定是本地服务器。

要发送给多个收件人的邮件可能位于多个队列中。可以使用通配符来指定希望在邮件将路由到的各个队列中查找邮件。下表提供了有效邮件标识的示例。

邮件标识格式

邮件标识格式 用法

Server\QueueJetId\MessageJetID

队列中邮件的完整命名。

Server\Poison\MessageJetID

病毒邮件队列中的邮件。

MessageJetID

具有此数据库标识并且将路由到本地服务器上任何队列(一封邮件路由到多个队列)的所有邮件。

Server\*\MessageJetID

具有此数据库标识并且将路由到指定服务器上任何队列的所有邮件。

以下代码是如何将邮件标识与 Get-Message cmdlet 一起使用的示例。此示例将返回具有指定标识并且位于指定服务器上任何队列中的所有邮件的列表。此示例还会将结果集格式化为详细列表。

Get-message -Identity Server\*\1234 | Format-List

Filter 参数

队列任务支持使用 Filter 参数指定检索队列和邮件的条件。队列和邮件属性可用作筛选条件。可以创建筛选器以显示一组有限的队列或邮件。找到要监视的队列和邮件之后,可以查看每个对象的属性信息。此信息可帮助您解决邮件流问题。

使用 Filter 参数可以提供带有逻辑和关系运算符的表达式,以便只显示满足筛选条件的队列或邮件对象。可以使用 -and 逻辑运算符来指定结果需要匹配的多个条件。如果使用 -and 运算符,则将仅显示与所有指定表达式条件相匹配的对象。可以使用邮件或队列的属性子集来指定筛选条件。指定的属性必须是要查询的对象的有效属性,并且必须使用正确的语法来表示要匹配的值。如果要将属性值表示为单个整数以外的任何值,请务必用引号将该值引起。

Server 参数可以与 Filter 参数一起包括在命令中。对于要使用 RPC 进行连接以便查询其上的队列和邮件并检索结果集的服务器,可以使用 Server 参数指定其主机名称或 FQDN。

有关可以用于筛选的属性、这些属性的正确语法以及受支持运算符的详细信息,请参阅下列主题:

Queue 参数

Queue 参数仅可用于邮件命令。使用此参数可以指定从中检索邮件的队列的标识。如果已指定了队列,则会检索该队列中的所有邮件。可从特定队列中检索所有邮件,而不必使用筛选器表达式。可以通过使用通配符来检索多个队列中的邮件。

Queue 参数与邮件命令一起使用时,请使用本主题前面部分“队列标识”的表中的队列标识格式。以下代码示例显示了如何将 Queue 参数与 Get-Message cmdlet 一起使用。此示例产生的结果集仅包含位于指定服务器上并且排队等待传递到 SMTP 域 Contoso.com 的邮件。

Get-message -Queue Server\Contoso.com

高级分页参数

基于当前邮件流,对队列和邮件的查询可能会返回非常大的对象集。可以使用高级分页参数来控制如何检索和显示查询结果。

使用命令行管理程序查看队列和队列中的邮件时,查询每次将检索一页信息。高级分页参数可以控制结果集的大小,还可用于对结果进行排序。所有高级分页参数都是可选的,并且可以与可用于 Get-QueueGet-Message cmdlet 的任何一个参数集结合使用。如果未指定任何高级分页参数,则查询将按标识的升序返回结果。

默认情况下,如果指定了排序顺序,则会始终包括邮件标识属性,并以升序排序该属性。这是默认的顺序关系。因为可以按排序顺序包括的其他属性不唯一,因此包括了邮件标识属性。通过按排序顺序显式包括邮件标识属性,可以指定结果显示按降序排序的邮件标识。

可以使用 BookmarkIndexBookmarkObject 参数在排序结果集中标记位置。如果在检索下一页结果时书签对象不再存在,则默认顺序关系会确保结果集将从最接近书签的对象开始。最接近的对象取决于所指定的排序顺序。

下表介绍了高级分页参数。

高级分页参数

参数 说明

BookmarkIndex

BookmarkIndex 参数指定所显示的结果在结果集中的起始位置。BookmarkIndex 参数的值是总结果集中从 1 开始的索引。如果值小于或等于零,则返回第一个完整的结果页。如果将值设置为 Int.MaxValue,则返回最后一个完整的结果页。

BookmarkObject

BookmarkObject 参数指定了所显示的结果在结果集中的起始对象。如果指定书签对象,则该对象将被用作搜索起点。基于 SearchForward 参数的值,可以检索该对象之前或之后的行。不能将 BookmarkObject 参数和 BookmarkIndex 参数在单个查询中组合使用。

IncludeBookmark

IncludeBookmark 参数指定是否在结果集中包括书签对象。默认情况下,此值设置为 $true,即包括书签对象。可以运行有限结果大小的查询,然后将该结果集中最后一个项目指定为下一个查询的书签。在这种情况下,可能需要将 IncludeBookmark 设置为 $false,以使对象不会同时包括在两个结果集中。

ResultSize

ResultSize 参数指定每页显示的结果数。如果不指定值,则使用默认结果大小 1,000 个对象。Exchange 2010 将结果集限制为 250,000。

ReturnPageInfo

ReturnPageInfo 参数是隐藏参数。它返回有关结果总数和当前页第一个对象的索引的信息。默认值为 $false

SearchForward

SearchForward 参数指定了在结果集中向前搜索还是向后搜索。此参数不影响结果集的返回顺序。它确定相对于书签索引或对象的搜索方向。如果不指定书签索引或对象,则 SearchForward 参数将确定搜索是从结果集中的第一个对象开始还是从最后一个对象开始。

此参数的默认值是 $true。如果将 SearchForward 参数设置为 $true,并且指定了书签,则查询将从书签向前搜索。如果使用此配置,并且结果没有超过书签,则查询将返回最后一个完整的结果页。

如果将 SearchForward 参数设置为 $false,并且指定了书签,则查询将从书签向后搜索。如果使用此配置,并且结果没有超过书签,则查询将返回最后一个完整的结果页。

SortOrder

SortOrder 参数指定一个邮件属性数组,用于控制结果集的排序顺序。排序顺序属性将以优先级的降序顺序来指定。每个属性均以逗号分隔,并附加加号 (+) 以按升序排序,或附加减号 (-) 以按降序排序。

如果不使用此参数指定显式的排序顺序,则将按各个对象类型的 Identity 字段排序和显示与查询匹配的记录。如果不显式指定排序顺序,则结果始终按标识升序排序。

下列代码示例显示如何在查询中使用高级分页参数。在此示例中,该命令将连接到指定的服务器,并检索包含 500 个对象的结果集。结果以排序顺序进行显示,首先按发件人地址升序显示,然后按邮件大小降序显示。

Get-message -Server Exchange.Contoso.com -ResultSize 500 -SortOrder +FromAddress,-Size

如果要查看连续的页,可以为在结果集中检索到的最后一个对象设置书签,并运行其他查询。必须使用命令行管理程序的脚本功能执行此过程。

以下示例使用脚本来检索第一个结果页,然后设置书签对象,并从结果集中排除书签对象,然后在指定的服务器上检索随后的 500 个对象。

  1. 打开命令行管理程序,并键入以下命令以检索第一个结果页。

    $Results=Get-message -Server Exchange.Contoso.com -ResultSize 500 -SortOrder +FromAddress,-Size
    
  2. 若要设置书签对象,请键入以下命令,将第一页中的最后一个元素保存到变量中。

    $temp=$results[$results.length-1]
    
  3. 若要在指定的服务器上检索随后的 500 个对象并排除书签对象,请键入以下命令。

    Get-message -Server Exchange.Contoso.com -BookmarkObject:$temp -IncludeBookmark $False -ResultSize 500 -SortOrder +FromAddress,-Size
    

返回顶部

 © 2010 Microsoft Corporation。保留所有权利。