搜尋郵件追蹤記錄

適用於:Exchange Server 2013

在 Microsoft Exchange Server 2013 中,郵件追蹤記錄檔會在信箱伺服器上的傳輸服務、信箱伺服器上的信箱和邊緣傳輸伺服器上傳入及傳出郵件時詳細記錄所有的郵件活動。

您可以在 Exchange 管理命令介面中使用 Get-MessageTrackingLog Cmdlet,使用特定的搜尋準則來搜尋郵件追蹤記錄中的項目。

開始之前有哪些須知?

  • 預估完成時間:30 分鐘

  • 您必須已獲指派權限,才能執行此程序或這些程序。 若要查看您需要的權限,請參閱 郵件流程權限主題中的「郵件追蹤」項目。

  • 搜尋訊息追蹤記錄需要執行 Microsoft Exchange 傳輸記錄搜尋服務。 若您停用或停止此服務,您就無法搜尋郵件追蹤記錄或執行傳遞回報。 但是,停止此服務並不會影響 Exchange 中的其它功能。

  • Get-MessageTrackingLog Cmdlet 結果所顯示的功能變數名稱,類似于訊息追蹤記錄中使用的實際功能變數名稱。 最大的差異在於:

    • 破折號已從欄位名稱中移除。 例如 ,internal-message-id 會顯示為 InternalMessageId

    • 日期時間字段會顯示為 Timestamp

    • 件者位址字 段會顯示為 Recipients

    • 件人位址字 段會顯示為 Sender

  • 郵件追蹤記錄中的 date-time 欄位會以 Coordinated Universal Time (UTC) 儲存資訊。 不過,您應該以您用來執行搜尋之電腦的區域日期時間格式,輸入 開始結束 參數的日期時間搜尋準則。

  • 您不能從其他 Exchange 伺服器複製郵件追蹤記錄,然後又使用 Get-MessageTrackingLog Cmdlet 來搜尋這些郵件追蹤記錄。 此外,如果您手動儲存現有的郵件追蹤記錄,則檔案之日期時間戳記變更時,會破壞 Exchange 用來搜尋郵件追蹤記錄的查詢邏輯。

  • Exchange 2013 Get-MessageTrackingLog Cmdlet 可以在相同的 Active Directory 網站的 Exchange 2007 和 Exchange 2010 伺服器上搜尋訊息追蹤記錄。

  • 如需適用於此主題中程序的快速鍵相關資訊,請參閱 Exchange 系統管理中心的鍵盤快速鍵

提示

有問題嗎? 在 Exchange 論壇中尋求協助。 瀏覽 Exchange Server 的論壇。

使用殼層來搜尋訊息追蹤記錄

若要搜尋特定事件的郵件追蹤記錄項目,請使用下列語法。

Get-MessageTrackingLog [-Server <ServerIdentity.] [-ResultSize <Integer> | Unlimited] [-Start <DateTime>] [-End <DateTime>] [-EventId <EventId>] [-InternalMessageId <InternalMessageId>] [-MessageId <MessageId>] [-MessageSubject <Subject>] [-Recipients <RecipientAddress1,RecipientAddress2...>] [-Reference <Reference>] [-Sender <SenderAddress>]

若要檢視伺服器上最近 1000 個郵件追蹤記錄項目,請執行下列命令:

Get-MessageTrackingLog

此範例會搜尋本機伺服器上的訊息追蹤記錄,以尋找從 2013 年 3 月 28 日上午 8:00 到 2013 年 3 月 28 日下午 5:00 的所有 專案 ,以尋找郵件寄件者為 pat@contoso.com 的所有 FAIL 事件。

Get-MessageTrackingLog -ResultSize Unlimited -Start "3/28/2013 8:00AM" -End "3/28/2013 5:00PM" -EventId "Fail" -Sender "pat@contoso.com"

使用下列語法。

Get-MessageTrackingLog <SearchFilters> | <Format-Table | Format-List> [<FieldNames>] [<OutputFileOptions>]

本範例會使用下列搜尋準則來搜尋郵件追蹤記錄:

  • 傳回前 1,000 個 Send 事件的結果。

  • 以清單格式顯示結果。

  • 只顯示開頭為 或 RecipientSend 功能變數名稱。

  • 將輸出寫入名為 的新檔案 D:\Send Search.txt

Get-MessageTrackingLog -EventId Send | Format-List Send*,Recipient* > "D:\Send Search.txt"

使用殼層來搜尋訊息追蹤記錄檔,以尋找多部伺服器上的訊息專案

一般來說, MessageID: 標頭欄位中的值,在郵件於整個 Exchange 組織中傳輸時會維持不變。 在佇列檢視公用程式中,此內容名為 InternetMessageId ,在郵件追蹤記錄檢視公用程式中,此內容名為 MessageIdMessageID:決定特定訊息的值之後,您可以在 Exchange 組織中每個信箱伺服器的郵件追蹤記錄中搜尋該訊息的相關資訊。

若要搜尋所有信箱伺服器上特定訊息的所有郵件追蹤記錄專案,請使用下列語法。

Get-ExchangeServer | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -MessageId <MessageID> | Select-Object <CommaSeparatedFieldNames> | Sort-Object -Property <FieldName>

此範例會使用下列搜尋準則,在所有 Exchange 2013 信箱伺服器上搜尋郵件追蹤記錄:

  • 尋找與 MessageID: 值為 的 <ba18339e-8151-4ff3-aeea-87ccf5fc9796@mailbox01.contoso.com> 訊息相關的任何專案。 請注意,您可以省略角括弧字元 (<>) 。 如果您不這樣做,則需要將整個 MessageID: 值用引號括住。

  • 對於每個項目,顯示 date-timeserver-hostnameclient-hostnamesourceevent-idrecipient-address 欄位。

  • date-time 欄位排序結果。

Get-ExchangeServer | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -MessageId ba18339e-8151-4ff3-aeea-87ccf5fc9796@mailbox01.contoso.com | Select-Object Timestamp,ServerHostname,ClientHostname,Source,EventId,Recipients | Sort-Object -Property Timestamp

使用 EAC 搜尋郵件追蹤記錄

您可以在 Exchange 系統管理中心 (EAC) 中使用系統管理員的「傳遞回報」功能來搜尋郵件追蹤記錄,以取得組織中由特定信箱傳送或接收之郵件的相關資訊。 如需詳細資訊,請 參閱使用傳遞報告追蹤訊息