使用 Exchange 管理命令介面管理佇列

適用於:Exchange Server 2013

與舊版的 Exchange 一樣,您可以在 Exchange Server 2013 中使用 Exchange 管理命令介面,來檢視佇列和佇列中郵件的相關資訊,以及對佇列和郵件執行管理動作。 在 Exchange 2013 中,佇列位於 Mailbox Server 和 Edge Transport Server 上。 本主題將這些伺服器稱為 Transport Server

當您使用命令介面來檢視及管理 Transport Server 上的佇列和佇列中的郵件時,請務必了解如何識別要管理的佇列或郵件。 在一般的情況下,Transport Server 含有大量佇列和待傳遞的郵件。 您可以使用佇列和郵件管理指令程式上的篩選參數,識別要檢視或管理的佇列或郵件。

請注意,您也可以使用 Exchange 工具箱內的佇列檢視器來管理佇列和佇列中的郵件。 不過,佇列和郵件檢視指令程式支援的可篩選內容和篩選選項比佇列檢視器還多。 如需使用佇列檢視器的詳細資訊,請參閱佇列檢視器

佇列篩選參數

下表說明佇列管理指令程式提供的篩選參數。

指令程式 篩選參數 註解
Get-Queue Identity

Filter

Include

Exclude
您不能在同一個命令中同時使用 Identity 參數和 Filter 參數。 您可以在同一個命令中同時使用 IncludeExclude 參數及 Filter 參數。
Resume-Queue

Retry-Queue

Suspend-Queue
Identity

Filter
您需要擇一使用 Identity 參數或 Filter 參數,不過不能在同一個命令中同時使用。
Get-QueueDigest Server

Dag

Site

Forest

Filter
您需要使用 ServerDagSiteForest 參數,不過不能在同一個命令中搭配使用。 您可以使用 Filter 參數來搭配其他任何篩選參數。

請注意,所有佇列管理指令程式均提供 Server 參數。 在 Get-QueueDigest 指令程式上,Server 參數是指定要檢視佇列摘要資訊之伺服器的範圍參數。 在其他所有佇列管理指令程式上,您可以使用 Server 參數來連接特定的伺服器,以及在該伺服器上執行佇列管理命令。 當您使用 Server 參數時,不一定要搭配 Filter 參數,不過 Server 參數不能搭配 Identity 參數。 您可以使用 Transport Server 的主機名稱或 FQDN 來搭配 Server 參數。

佇列識別碼

佇列管理指令程式上的 Identity 參數能識別特定的佇列。 使用 Identity 參數時,不能指定其他任何佇列篩選參數,因為您已唯一識別佇列。 Identity 參數使用基本語法 <Server>\<Queue>

<Server> 預留位置是 Exchange 伺服器的主機名稱或 FQDN (如 mailbox01mailbox01.contoso.com)。 省略 <Server> 限定詞即意指本機伺服器。

<Queue> 預留位置接受以下任一值:

  • 持續佇列名稱:所有 Mailbox Server 或 Edge Transport Server 上的持續佇列擁有唯一而一致的名稱。 持續佇列名稱包括:

    • 提交:此佇列含有待分類程式處理的郵件。
    • 無法存取:此佇列含有無法路由傳送的郵件。 若未將郵件放入佇列,此佇列便不存在。
    • 毒藥:此佇列含有經判定為對 Exchange 伺服器有害的郵件。 若未將郵件放入佇列,此佇列便不存在。
  • 傳遞佇列名稱:傳遞佇列的名稱是佇列之 NextHopDomain 內容的值。 例如,佇列名稱可以是傳送連接器的位址空間、Active Directory 站台的名稱或 DAG 的名稱。 如需詳細資訊,請參閱 佇列主題的「NextHopSolutionKey」一節。

  • 佇列整數:在佇列資料庫中,系統會將唯一的整數值指派給傳遞佇列和陰影佇列。 然而,您需要執行 Get-Queue 指令程式,以在 IdentityQueueIdentity 內容中尋找佇列的整數值。

  • 陰影佇列名稱:陰影佇列使用語法 Shadow\<QueueInteger>

下表摘要列出可用來在佇列管理指令程式上與 Identity 參數搭配的語法。 在所有值中,<Server> 是主機名稱或伺服器的 FQDN。

佇列識別碼格式

Identity 參數值 描述
<Server>\<PersistentQueueName><PersistentQueueName> 指定之伺服器或本機伺服器上的持續佇列。

<PersistentQueueName>SubmissionUnreachablePoison
<Server>\<NextHopDomain><NextHopDomain> 指定之伺服器或本機伺服器上的傳遞佇列。

<NextHopDomain> 是佇列中郵件的路由目的地或傳遞群組。 如需詳細資訊,請參閱 佇列主題的「NextHopSolutionKey」一節。
<Server>\<QueueInteger><QueueInteger> 指定之伺服器或本機伺服器上的傳遞佇列。

<QueueInteger> 是顯示於 Get-Queue 指令程式之 Identity 內容中佇列的唯一整數值。
<Server>\Shadow\<QueueInteger>Shadow\<QueueInteger> 指定之伺服器或本機伺服器上的陰影佇列。
<Server>\** 指定之伺服器或本機伺服器上的所有佇列。 請注意,這些值只能搭配 Get-Queue 指令程式。

佇列篩選參數

在所有佇列管理指令程式上,您可以使用 Filter 參數來根據佇列內容指定要檢視或管理的佇列。 Filter 參數會建立含有比較運算子的運算式,這些運算子會將佇列作業限制為滿足篩選準則的佇列。 您可以使用 -and 邏輯運算子指定結果必須符合的多個條件。

如需可搭配 Filter 參數的完整佇列內容清單,請參閱 佇列

如需可搭配 Filter 參數的比較運算子清單,請參閱本主題的 <在篩選佇列或郵件時可使用的比較運算子> 一節。

如需使用 Filter 參數來檢視及管理佇列的程序範例,請參閱 管理佇列

Include 和 Exclude 參數

Exchange 2013 的 Get-Queue 指令程式含有 IncludeExclude 參數。 這兩個參數可以個別使用、同時使用,以及與 Filter 參數搭配使用,以便在本機或指定之 Transport Server 上微調佇列結果。 例如,您可以:

  • 排除結果中空白的佇列。
  • 排除結果中前往外部目的地的佇列。
  • 在結果中包含具有特定 DeliveryType 值的佇列。

IncludeExclude 參數使用以下佇列內容來篩選佇列:

描述 命令介面程式碼範例
DeliveryType 此值會根據 DeliveryType 屬性來包含或排除佇列。 您可以指定多個以逗號分隔的值。 在 Queues主題的 「NextHopSolutionKey」 區段中會說明DeliveryType的有效值。 對於下一個躍點是已針對智慧主機路由進行設定之本機伺服器上的傳送連接器,以下範例會傳回符合此情況之本機伺服器上的所有傳遞佇列:

Get-Queue -Include SmartHostConnectorDelivery
Empty 此值可包含或排除空白的佇列。 空白佇列的 MessageCount 屬性中有值 0 此範例會傳回含有郵件之本機伺服器上的所有佇列

Get-Queue -Exclude Empty
External 此值可包含或排除再 NextHopCategory 屬性中具有值 External 的佇列。

外部佇列的 DeliveryType 值一律為以下任一項:
  • DeliveryAgent
  • DnsConnectorDelivery
  • NonSmtpGatewayDelivery
  • SmartHostConnectorDelivery

如需詳細資訊,請參閱 佇列主題的「NextHopSolutionKey」一節。

此範例會傳回本機伺服器上的所有內部佇列

Get-Queue -Exclude External
Internal 此值可包含或排除再 NextHopCategory 屬性中具有值 Internal 的佇列。 如需詳細資訊,請參閱 佇列主題的「NextHopSolutionKey」一節。 此範例會傳回本機伺服器上的所有內部佇列。

Get-Queue -Include Internal

請注意,您可以使用 Filter 參數複製 IncludeExclude 參數的功能。 例如,命令 Get-Queue -Exclude Empty 會產生與 Get-Queue -Filter "MessageCount -gt 0" 相同的結果。 不過,IncludeExclude 參數的語法比較簡單,也比較容易記住。

Get-QueueDigest

Exchange 2013 新增了名為 Get-QueueDigest 的佇列指令程式。 此指令程式能讓您使用單一命令檢視 Exchange 組織中部分或全部佇列的相關資訊。 具體來說, Get-QueueDigest 指令程式可讓您根據佇列在伺服器、DAG、Active Directory 站台或整個 Active Directory 樹系中的位置,來檢視佇列的相關資訊。 請注意,結果中不會包含周邊網路中已訂閱的 Edge Transport Server 上的佇列。 此外, Get-QueueDigest 也可在 Edge Transport Server 上使用,但結果只會顯示 Edge Transport Server 上的佇列。

注意事項

依預設,Get-QueueDigest 指令程式會顯示包含十封郵件以上的傳遞佇列,而且會是一到二分鐘之前的結果。 如需如何變更這些預設值的指示,請參閱 Configure Get-QueueDigest

下表說明可用來搭配 Get-QueueDigest 指令程式的篩選和排序參數。

參數 描述
DagServerSite 這些參數會互斥,而且能設定指令程式的範圍。 您需要指定這些參數中的其中一個參數,或指定 Forest 參數。 在一般的情況下,您會使用伺服器、DAG 或 Active Directory 站台的名稱,不過您可以使用任何可唯一識別伺服器、DAG 或站台的值。 您可以指定多個伺服器、DAG 或站台,並以逗號加以分隔。
Forest 如果您不是使用 DagServerSite 參數,則必須使用此參數。 您不需要為此參數指定任何值。 此參數能讓您取得 Active Directory 樹系中所有 Exchange 2013 信箱伺服器的佇列。 您不能使用 Forest 參數來檢視遠端 Active Directory 樹系中的佇列。
DetailsLevel 此參數接受的值為 NoneNormalVerbose。 預設值為 Normal。 使用值 None 時,結果內 [詳細資料] 欄中的佇列名稱會遭到省略。
Filter 此參數可讓您根據佇列內容篩選佇列。 您可以使用任何可篩選的佇列內容,如 佇列篩選器 主題所述。
GroupBy 此參數會為佇列結果分組。 您可以根據以下任一內容為結果分組:
  • DeliveryType
  • LastError
  • NextHopCategory
  • NextHopDomain
  • NextHopKey
  • Status
  • ServerName

依預設,結果會根據 NextHopDomain 分組。 如需這些佇列內容的相關資訊,請參閱 佇列篩選器

ResultSize 此參數能將佇列結果限制為您指定的值。 系統會根據佇列中的郵件數目以遞減順序為佇列排序,並且會根據 GroupBy 參數指定的值分組。 預設值為 1000。 這代表依預設此命令會顯示前 1000 個根據 NextHopDomain 分組的佇例,並根據包含最多郵件的佇列到包含最少郵件的佇列的順序進行排序。
Timeout 此參數可指定作業逾時前的秒數。預設值是 00:00:10 或 10 秒。

此範例會傳回名為 Mailbox01、Mailbox02 及 Mailbox03 等 Exchange 2013 Mailbox Server 上所有非空白的外部佇列。

Get-QueueDigest -Server Mailbox01,Mailbox02,Mailbox03 -Include External -Exclude Empty

郵件篩選參數

下表說明郵件管理指令程式提供的篩選參數。

指令程式 篩選參數 註解
Get-Message Identity

Filter

Queue
所有篩選參數均會互斥,而您可以在同一個命令中搭配使用。
Remove-Message

Resume-Message

Suspend-Message
Identity

Filter
您需要擇一使用 Identity 參數或 Filter 參數,不過不能在同一個命令中同時使用。
Export-Message Identity 必須有 Identity 參數。

請注意,除了 Export-Message 指令程式之外,所有郵件管理指令程式均提供 Server 參數。 您可以使用 Server 參數來連接特定的伺服器,以及在該伺服器上執行郵件管理命令。 當您使用 Server 參數時,不一定要搭配 Filter 參數,不過 Server 參數不能搭配 Identity 參數。 您可以使用 Transport Server 的主機名稱或 FQDN 來搭配 Server 參數。

郵件識別碼

郵件管理指令程式上的 Identity 參數能識別一或多個佇列中的特定郵件。 使用 Identity 參數時,不能指定其他任何郵件篩選參數,因為您已唯一識別郵件。 Identity 參數使用基本語法 <Server>\<Queue>\<MessageInteger>

<Server> 預留位置是 Exchange 伺服器的主機名稱或 FQDN (如 mailbox01mailbox01.contoso.com)。 省略 <Server> 限定詞即意指本機伺服器。

<Queue> 預留位置接受佇列的識別碼,如本主題的<佇列識別碼>一節所述。 例如,您可以使用持續佇列名稱、 NextHopDomain 值或佇列資料庫中佇列的唯一整數值。

<MessageInteger> 預留位置代表當郵件最初進入伺服器的佇列資料庫時,指派給郵件的唯一整數值。 如果要將郵件傳送給需要多個佇列的多位收件者,該郵件的所有副本在佇列資料庫的所有佇列中均擁有相同的整數值。 然而,您需要執行 Get-Message 指令程式,以在 IdentityMessageIdentity 內容中尋找郵件的整數值。

下表摘要列出可用來在郵件管理指令程式上與 Identity 參數搭配的語法。 在所有值中,<Server> 是主機名稱或伺服器的 FQDN。

郵件識別碼格式

Identity 參數值 描述
<Server>\<Queue>\<MessageInteger><Queue>\<MessageInteger> 指定之伺服器或本機伺服器上特定佇列中的郵件。

<MessageInteger> 是顯示於 Get-Message 指令程式之 Identity 內容中郵件的唯一整數值。

<Queue> 代表下列其中一個值:
  • 永續性佇列名稱:值 SubmissionUnreachablePoison
  • 傳遞佇列名稱:佇列的 NextHopDomain 屬性值,這實際上是佇列的名稱。 此值可以是路由目的地或傳遞群組。 如需詳細資訊,請參閱 佇列主題的「NextHopSolutionKey」一節。
  • 佇列整數:傳遞佇列或陰影佇列的唯一整數值,顯示在Get-MessageGet-Queue Cmdlet 的 Identity屬性中
  • 陰影佇列身分識別:陰影佇列身分識別會使用 語 Shadow\<QueueInteger> 法 。
<Server>\*\<MessageInteger>*\<MessageInteger><MessageInteger> 在指定伺服器或本機伺服器上,佇列資料庫之所有佇列中的所有郵件副本。

郵件篩選參數

您可以在 Get-MessageRemove-MessageResume-MessageSuspend-Message指令程式上使用 Filter 參數來根據郵件的內容指定要檢視或管理的郵件。 Filter 參數會建立含有比較運算子的運算式,這些運算子會將郵件作業限制為滿足篩選準則的郵件。 您可以使用 -and 邏輯運算子指定結果必須符合的多個條件。

如需可搭配 Filter 參數的完整郵件內容清單,請參閱 佇列

如需可搭配 Filter 參數的比較運算子清單,請參閱本主題的 <在篩選佇列或郵件時可使用的比較運算子> 一節。

如需使用 Filter 參數來檢視及管理郵件的程序範例,請參閱 管理佇列

Queue 參數

Queue 參數只能搭配 Get-Message 指令程式使用。 您可以使用此參數來取得特定佇列中的所有訊息,或使用萬用字元 (*) 從多個佇列取得所有訊息。 當您使用Queue參數時,請使用佇列識別格式< 伺服器 >\< 佇列, >如本主題的一節中所述。

在篩選佇列或郵件時可使用的比較運算子

在使用 Filter 參數建立佇列或郵件篩選運算式時,您需要針對要比對的內容值加入比較運算子。 下表顯示可以用於篩選運算式中的比較運算子,以及每個運算子的運作方式。 對於所有運算子來說,比較的值不區分大小寫。

比較運算子

運算子 函數 命令介面程式碼範例
-eq 此運算子是用來指定結果必須完全符合運算式中所提供的內容值。 顯示擁有「重試」狀態的所有佇列清單:

Get-Queue -Filter "Status -eq 'Retry'"

若要顯示所有狀態為 Retry 的郵件清單:

Get-Message -Filter "Status -eq 'Retry'"
-ne 此運算子是用來指定結果必須完全符合運算式中所提供的內容值。 顯示擁有「作用中」狀態的所有佇列清單:

Get-Queue -Filter "Status -ne 'Active'"

顯示擁有「作用中」狀態的所有郵件清單:

Get-Message -Filter "Status -ne 'Active'"
-gt 此運算子是與值以整數或日期/時間表示的內容搭配使用。 篩選結果只會包含所指定內容的值大於運算式所提供之值的佇列或郵件。 顯示目前包含超過 1000 封郵件的佇列清單:

Get-Queue -Filter "MessageCount -gt 1000"

若要顯示目前重試計數大於 3 的郵件清單:

Get-Message -Filter "RetryCount -gt 3"
-ge 此運算子是與值以整數或日期/時間表示的內容搭配使用。 篩選結果只會包含所指定內容的值大於或等於運算式所提供之值的佇列或郵件。 顯示目前包含 1000 封以上郵件的佇列清單:

Get-Queue -Filter "MessageCount -ge 1000"

若要顯示目前重試計數大於或等於 3 的郵件清單:

Get-Message -Filter "RetryCount -ge 3"
-lt 此運算子是與值以整數或日期/時間表示的內容搭配使用。 篩選結果只會包含所指定內容的值小於運算式所提供之值的佇列或郵件。 顯示目前包含少於 1000 封郵件的佇列清單:

Get-Queue -Filter "MessageCount -lt 1000"

若要顯示 SCL 小於 6 的郵件清單:

Get-Message -Filter "SCL -lt 6"
-le 此運算子是與值以整數或日期/時間表示的內容搭配使用。 篩選結果只會包含所指定內容的值小於或等於運算式所提供之值的佇列或郵件。 顯示目前包含 1000 封以下郵件的佇列清單:

Get-Queue -Filter "MessageCount -le 1000"

若要顯示 SCL 小於或等於 6 的郵件清單:

Get-Message -Filter "SCL -le 6"
-like 此運算子是與值以字串表示的內容搭配使用。 篩選結果只會包含所指定內容的值含有運算式所提供之文字字串的佇列或郵件。 您可以將 (*) 萬用字元包含在會套用到文字字串欄位 (而非列舉類型欄位) 的 -like 運算式中。 顯示目的地是任何以 Contoso.com 為結尾之 SMTP 網域的傳遞佇列清單:

Get-Queue -Filter "Identity -like '*contoso.com'"

若要顯示主旨中含有 "payday loan" 等文字的郵件清單:

Get-Messages -Filter "Subject -like '*payday loan*'"

您可以使用 -and 比較運算子來指定評估多個運算式的篩選。 佇列或郵件必須滿足篩選的所有條件才能包含在結果中。

此範例會顯示目的地是任何以 Contoso.com 為結尾的 SMTP 網域名稱而且目前包含超過 500 封郵件之佇列的清單。

Get-Queue -Filter "Identity -like '*contoso.com*' -and MessageCount -gt 500"

此範例會顯示從 contoso.com 網域中任何電子郵件地址傳送且 SCL 大於 5 之郵件的清單。

Get-Message -Filter "FromAddress -like '*Contoso.com*' -and SCL -gt 5"

進階分頁參數

視目前的郵件流程而定,向佇列及郵件進行的查詢可能會傳回很大的一組物件。 您可以使用進階分頁參數來控制查詢結果的擷取及顯示方式。

使用命令介面檢視佇列及這些佇列中的郵件時,您的查詢一次會擷取一頁的資訊。 進階分頁參數會控制結果集的大小,而且可以用來排序結果。 所有進階分頁參數都是選用的,而且可以與任何一個參數集一起使用,而這些參數集可與 Get-QueueGet-Message 指令程式搭配使用。 如果未指定任何進階分頁參數,則查詢會以識別碼的遞增順序傳回結果。

指定排序順序時,預設一律會包含郵件識別碼內容,且會用遞增順序排序該內容。 這是預設順序關係。 因為其他可以用排序順序包含的內容不是唯一的,所以會包含郵件識別碼內容。 在排序順序中明確包含郵件識別碼內容,就可以指定結果以遞減順序排序顯示郵件識別碼。

您可以使用 BookmarkIndexBookmarkObject 參數,標出排序結果集中的位置。 如果書籤物件在擷取下一頁的結果時已不復存在,則預設順序關係會確定結果集會從與書籤最近的物件開始。 最近的物件則取決於指定的排序順序。

下表描述進階分頁參數。

參數 描述
BookmarkIndex 此參數指定在結果集中開始顯示結果的位置。 此參數的值是總結果集中以 1 為基礎的索引。 如果值小於或等於零,則會傳回第一個完整的結果頁面。 如果值設為 Int.MaxValue,則會傳回最後一個完整的結果頁面。
BookmarkObject 此參數指定在結果集中開始顯示結果的物件。 如果指定書籤物件,則會將該物件當成搜尋開始點。 會擷取該物件之前或之後的列 (取決於 SearchForward 參數的值)。 不能在單一查詢中一起使用 BookmarkObject 參數與 BookmarkIndex 參數。
IncludeBookmark 此參數可以指定是否要在結果集中包含書籤物件。 此值預設是設為 $true,而且會包含書籤物件。 您可以執行查詢以限制結果大小,然後將該結果集中的最後一個項目指定為下一個查詢的書籤。 在此情況下,您可能會想要將 IncludeBookmark 設為 $false,讓該物件不要包含在這兩個結果集中。
ResultSize 此參數可以指定每頁要顯示的結果數。 如果您不指定值,則會使用 1,000 個物件的預設結果大小。 Exchange 會將結果集限制為 250,000 筆。
ReturnPageInfo 此參數是隱藏參數。 它會傳回總結果數及目前頁面之第一個項目索引的相關資訊。 預設值為 $false
SearchForward 此參數指定要在結果集中進行往前或往回搜尋。 此參數不會影響傳回結果集的順序。 它判定的是與書籤索引或物件相對的搜尋方向。 如果未指定任何書籤索引或物件,則 SearchForward 參數會判定搜尋是從結果集中的第一個或最後一個物件處開始。

此參數的預設值是 $true。 如果此參數是設為 $true,而且指定書籤,則查詢會從該書籤處往前進行搜尋。 如果使用此組態,而在該書籤之後沒有任何結果,則查詢會傳回最後一個完整的結果頁面。

如果 SearchForward 參數是設為 $false,而且指定書籤,則查詢會從該書籤處往回進行搜尋。 如果使用此組態,而在該書籤之後沒有完整一頁的結果,則查詢會傳回第一個完整的結果頁面。
SortOrder 此參數指定用來控制結果集之排序順序的郵件內容陣列。 排序順序內容是指定為優先順序的遞減順序。 每個內容都是以逗點隔開,並加上加號 (+) 以根據遞增順序排序,或減號 (-) 以根據遞減順序排序。

如果未使用此參數指定明確的排序順序,則會顯示與查詢相符的記錄,而且會根據個別物件類型的 Identity 欄位排序那些記錄。 未明確指定排序順序時,結果一律會根據識別碼以遞增順序進行排序。

下列程式碼範例顯示如何在查詢中使用進階分頁參數。 在此範例中,該命令會連接至指定的伺服器,並擷取內含 500 個物件的結果集。 結果會以排序的順序顯示,先根據寄件者地址遞增排序,然後再根據郵件大小遞減排序。

Get-Message -Server mailbox01.contoso.com -ResultSize 500 -SortOrder +FromAddress,-Size

如果想要檢視後續的頁面,則可以在結果集中擷取的最後一個物件處設定書籤,並執行其他查詢。 您必須使用命令介面的指令碼功能才能執行此程序。

下列範例使用指令碼來擷取第一個結果頁面、設定書籤物件、從結果集中排除書籤物件,然後在所指定的伺服器上擷取下 500 個物件。

  1. 開啟命令介面,並輸入下列命令以擷取第一個結果頁面。

    $Results=Get-message -Server mailbox01.contoso.com -ResultSize 500 -SortOrder +FromAddress,-Size
    
  2. 若要設定書籤物件,請輸入下列命令,以將第一頁的最後一個元素儲存至變數中。

    $temp=$results[$results.length-1]
    
  3. 若要擷取所指定伺服器上的下 500 個物件,以及排除書籤物件,請輸入下列命令。

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