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

 

適用版本: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上次修改主題的時間: 2006-09-18

本主題描述 Exchange 管理命令介面中的佇列指令程式,並說明如何使用指令程式及參數集來建立查詢、擷取結果及執行修改動作。如需佇列工作及如何使用它們來監視及疑難排解的相關資訊,請參閱管理佇列

在 Microsoft Exchange Server 2007 中,您可以使用 Exchange 管理命令介面來執行管理及組態工作,以及建立指令碼來自動執行工作。也可以使用 Exchange 管理命令介面來檢視伺服器上之佇列和出現在那些佇列中之郵件的相關資訊,以及對佇列及郵件項目執行管理動作。這些作業對疑難排解郵件流程及識別垃圾郵件而言十分有用。如需如何使用 Exchange 管理命令介面的相關資訊,請參閱使用 Exchange 管理命令介面

管理佇列及郵件

佇列工作分成兩種類別:檢視動作及修改動作。檢視動作可讓您顯示伺服器上所佇列的佇列及郵件,以及選取在顯示時要如何分組及排序該資料。修改動作是變更佇列及郵件狀態的作業。這兩種類型的工作都會使用遠端程序呼叫 (RPC) 連接至傳輸工作者處理序,以存取資料。如需 Exchange 2007 傳輸處理程序的相關資訊,請參閱 傳輸結構

Exchange 管理命令介面預設會將焦點放在本機伺服器。您也可以透過將遠端伺服器名稱指定為佇列識別碼的一部分,或搭配使用 Server 參數與篩選器,以連接至遠端伺服器,並檢視該伺服器上的佇列及郵件。如需如何使用 Exchange 管理命令介面來檢視佇列及郵件的相關資訊,請參閱如何檢視佇列如何檢視訊息

佇列指令程式

表 1 列出可在 Exchange 管理命令介面中使用,用來管理佇列及佇列中郵件的指令程式。如需如何使用每個指令程式的相關資訊,請參閱 [相關資訊] 欄中所列的說明主題。

表 1   佇列指令程式

指令程式 使用方式 相關資訊

Export-Message

此指令程式可以將郵件副本儲存在系統管理員指定的檔案路徑中。

Export-Message

如何從佇列匯出郵件

Get-Message

此指令程式可讓您檢視目前在佇列中等待傳遞之郵件的詳細資料。您可以使用 Get-Message 指令程式來擷取一組郵件,然後將結果傳送至其中一個侵入性指令程式。

Get-Message

如何檢視訊息

管線

使用命令列輸出

Get-Queue

此指令程式可讓您檢視出現在傳輸伺服器上之佇列的設定詳細資料。您可以使用 Get-Queue 指令程式來擷取一組佇列,然後將結果傳送至其中一個侵入性指令程式。

Get-Queue

如何檢視佇列

管線

使用命令列輸出

Remove-Message

此指令程式會從佇列中刪除郵件。系統管理員可以選擇是否傳送未傳遞回報 (NDR)。

Remove-Message

如何移除佇列中的郵件

Resume-Message

此指令程式會繼續傳遞先前擱置的郵件。您也可以使用 Resume-Message 指令程式,將毒藥郵件佇列中的郵件重新提交回提交佇列,以供分類程式處理。

Resume-Message

如何繼續郵件

如何重新提交佇列中的郵件

Resume-Queue

此指令程式會繼續傳遞先前擱置佇列中的郵件。

Resume-Queue

如何繼續佇列

Retry-Queue

此指令程式會強制嘗試連接目前狀態為「重試」的佇列。此連線嘗試會覆寫下一個已排定的重試。您也可以一併使用 Retry-Queue 指令程式與 Resubmit 參數,將傳遞佇列或無法到達之佇列中的郵件傳回提交佇列,以供分類程式處理。

Retry-Queue

如何重試佇列

如何重新提交佇列中的郵件

Suspend-Message

此指令程式會擱置 Exchange 2007 傳輸伺服器之佇列中郵件的傳遞。

Suspend-Message

如何暫停訊息

Suspend-Queue

此指令程式會擱置出現在 Exchange 2007 傳輸伺服器之佇列上的傳出活動。

Suspend-Queue

如何暫停佇列

使用佇列工作參數集

佇列工作支援多個參數集。這些參數集如下:Identity、Queue 及 Filter。只有郵件命令才有 Queue 參數集。在命令中不能合併使用 Identity、Queue 及 Filter 參數集。Server 參數只可以與篩選器運算式一起使用。

也可以將 Exchange 管理命令介面中的進階分頁參數與 Identity、Queue 及 Filter 參數集搭配使用。進階分頁參數是與 Get-MessageGet-Queue 指令程式搭配使用,以控制結果集的排序及顯示方式。進階分頁參數稍後會在本主題的表 4 中予以說明。

使用修改郵件或佇列的命令時,必須使用 Identity、Queue 或 Filter 參數集。如果未提供任何參數,則 Get-MessageGet-Queue 指令程式會顯示本機伺服器上的所有郵件或佇列物件。

如果佇列或郵件查詢的結果集包含 250,000 個以上的項目,則會發生錯誤,並且會提示您套用篩選器以減少結果數。

使用 Identity 參數

知道想要檢視或想要對其採取動作的特定郵件或佇列時,請使用 Identity 參數。根據識別碼的搜尋會比產生相同的查詢以當成篩選還快。伺服器名稱可以用主機名稱或網域全名 (FQDN) 表示。您可以輸入遠端伺服器的名稱作為識別碼的一部分,以初始化該伺服器的 RPC 連線,這樣就可以查詢該伺服器上的佇列。如果未使用伺服器名稱,則會使用本機主機。提供修改動作識別碼時,所識別的物件必須完整定義且是唯一的。如果識別碼不明確,則不會執行動作。如果略過識別碼的伺服器部分,則會使用本機電腦。

將 Identity 參數當成 Get-QueueGet-Message 指令程式的一部分時,Identity 參數會支援萬用字元運算式的使用。

佇列識別碼

持續性佇列會有唯一名稱,且可以根據名稱予以指定。且會將唯一資料庫識別碼指派給傳遞佇列。您可以使用此資料庫識別碼來指定佇列,或是使用傳遞目的地的名稱來指定佇列。若要藉由指定佇列唯一資料庫識別碼,在佇列上執行作業,您必須先執行 Get-Queue 指令程式。會在結果中傳回資料庫識別碼。表 2 中顯示接受的佇列識別碼格式。

表 2   佇列識別碼格式

佇列識別碼格式 使用方式

Server\QueueJetID (Int64)

傳遞佇列的完整且唯一識別碼。

\QueueJetID

本機伺服器上佇列的識別碼。伺服器名稱予以省略。因此,會使用本機伺服器。

Server\*

指定伺服器上的任意佇列。

Server\NextHopDomain

指定伺服器上的佇列,該伺服器會保留郵件以傳遞至特定遠端網域。

\NextHopDomain

用來保留要傳送至特定網域之郵件的佇列,且該佇列位在本機伺服器上。

Server\Poison

位在所指定伺服器上的污染郵件佇列。

Server\Submission

含有等待分類程式處理之項目的佇列。

Server\Unreachable

含有無法路由之項目的佇列,且該佇列位在所指定的伺服器上。

下列程式碼是如何搭配使用佇列識別碼與 Get-Queue 指令程式的範例。此範例會傳回所有佇列的清單,而這些佇列是用來保留要傳遞至簡易郵件傳送通訊協定 (SMTP) 網域名稱 (結尾為 Contoso.com) 的郵件。此範例也會將結果集格式化為詳細清單:

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

郵件識別碼

郵件的識別碼是唯一資料庫郵件項目及佇列識別碼的彙總。郵件進入佇列 JET 資料庫時,會將識別碼 (整數) 指派給郵件,而該整數會附加至佇列識別碼,以建立郵件識別碼。若要以指定郵件資料庫識別的方式對郵件執行作業,您必須先執行 Get-Message 指令程式。會在結果中傳回識別碼。如果想要連接至遠端伺服器,則可以將伺服器名稱併入成郵件識別碼的一部分。如果省略伺服器名稱,則會使用本機伺服器。正要傳送給多位收件者的郵件可能會位在多個佇列中。您可以使用萬用字元,指定想要在每個已收到該郵件的佇列中尋找該郵件。表 3 提供有效郵件識別碼的範例。

表 3   郵件識別碼格式

郵件識別碼格式 使用方式

Server\QueueJetId\MessageJetID

佇列中之郵件的完整名稱。

Server\Poison\MessageJetID

位在污染郵件佇列中的郵件。

MessageJetID

具有此 JET 資料庫識別碼且路由至本機伺服器上之任意佇列的所有郵件 (一個郵件路由至多個佇列)。

Server\*\MessageJetID

具有此 JET 資料庫識別碼且路由至所指定伺服器上之任意佇列的所有郵件。

下列程式碼是如何搭配使用郵件識別碼與 Get-Message 指令程式的範例。此範例會傳回所有郵件的清單,而這些郵件具有指定的識別碼,且位在指定伺服器上的任意佇列中。此範例也會將結果集格式化為詳細清單:

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

使用 Filter 參數

佇列工作支援 Filter 參數,可讓您指定用來擷取佇列及郵件的準則。佇列及郵件內容可以當成篩選器準則。請建立篩選器,以顯示限制的一組佇列或郵件。找到想要監視的佇列及郵件後,就可以檢視每個物件的內容資訊。在疑難排解郵件流程問題時,此資訊十分有用。

請使用 Filter 參數提供含有邏輯及關係運算子的運算式,使其僅顯示符合篩選準則的佇列或郵件物件。您可以使用 -and 邏輯運算子指定結果需要符合的多個條件。如果使用 -and 運算子,則只會顯示符合運算式之所有指定條件的物件。郵件或佇列內容的子集是用來指定篩選準則。指定內容時,該內容必須是正在查詢之物件的有效內容,而且要符合的值必須使用正確的語法來表示。內容值是以單一整數以外的項目所表示時,請確定用引號括住該值。

Server 參數可以與 Filter 參數一起放在命令中。使用 Server 參數可以指定要連接之伺服器的主機名稱或 FQDN,方法是使用 RPC,以查詢該伺服器上的佇列及郵件,並擷取結果集。

如需可用來進行篩選之內容、這些內容的正確語法及支援的運算子之相關資訊,請參閱下列各主題:

使用 Queue 參數

Queue 參數只可以與郵件命令搭配使用。使用此參數,可以指定要從中擷取郵件之佇列的識別碼。如果指定佇列,則會擷取該佇列中的所有郵件。這可讓您擷取特定佇列中的所有郵件,而不需使用篩選器運算式。您可以使用萬用字元,來擷取多個佇列中的郵件。將 Queue 參數與郵件命令搭配使用時,請使用表 2 中的佇列識別碼格式。下列程式碼範例會顯示如何搭配使用 Queue 參數與 Get-Message 指令程式。此範例所產生之結果集包含的郵件,就是位在所指定伺服器上且放在佇列中要傳遞給 SMTP 網域 Contoso.com 的郵件:

Get-message -Queue Server\Contoso.com

使用進階分頁參數

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

使用 Exchange 管理命令介面檢視佇列及這些佇列中的郵件時,您的查詢一次會擷取一頁的資訊。進階分頁參數會控制結果集的大小,而且可以用來排序結果。所有進階分頁參數都是選用的,而且可以與任何一個參數集一起使用,而這些參數集可與 Get-QueueGet-Message 指令程式搭配使用。如果未指定任何進階分頁參數,則查詢會以識別碼的遞增順序傳回結果。指定排序順序時,預設一律會包含郵件識別碼內容,且會用遞增順序排序該內容。這是預設順序關係。因為其他可以用排序順序包含的內容不是唯一的,所以會包含郵件識別碼內容。在排序順序中明確包含郵件識別碼內容,就可以指定結果以遞減順序排序顯示郵件識別碼。

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

表 4 描述進階分頁參數。

表 4 進階分頁參數

參數 描述

BookmarkIndex

BookmarkIndex 參數可以指定所顯示結果在結果集中的開始位置。BookmarkIndex 參數的值是總結果集中以 1 為基礎的索引。如果值小於或等於零,則會傳回第一個完整的結果頁面。如果值設為 Int.MaxValue,則會傳回最後一個完整的結果頁面。

BookmarkObject

BookmarkObject 參數可以指定所顯示結果在結果集中的開始物件。如果指定書籤物件,則會將該物件當成搜尋開始點。會擷取該物件之前或之後的列 (取決於 SearchForward 參數的值)。在單一查詢中,不可以合併使用 BookmarkObject 參數與 BookmarkIndex 參數。

IncludeBookmark

IncludeBookmark 參數可以指定是否要在結果集中包含書籤物件。此值預設是設為 $true,而且會包含書籤物件。您可以執行查詢以限制結果大小,然後將該結果集中的最後一個項目指定為下一個查詢的書籤。在此情況下,您可能會想要將 IncludeBookmark 設為 $false,讓該物件不要包含在這兩個結果集中。

ResultSize

ResultSize 參數可以指定每頁要顯示的結果數。如果未指定任何值,則會使用預設結果大小 (1,000 個物件)。Exchange Server 2007 則將結果集限制為 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

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

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

範例:如何使用指令碼設定書籤物件

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

    $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
    

相關資訊

若要確保您目前閱讀的是最新資訊,並尋找其他的 Exchange Server 2007 說明文件,請造訪 Exchange Server 技術資源中心.