Exchange Server:搜尋訊息追蹤記錄
郵件追蹤功能會在郵件流經信箱伺服器和 Edge Transport Server 上的傳輸管線時記錄下郵件的活動。 您可以在 Exchange 管理命令介面中使用 Get-MessageTrackingLog Cmdlet,使用特定的搜尋準則來搜尋郵件追蹤記錄中的項目。 例如:
了解使用者所傳送給特定收件者的郵件發生了什麼事。
了解郵件流程規則是否 (也稱為傳輸規則) 對郵件採取動作。
了解網際網路寄件者所傳送的郵件是否會讓郵件進入 Exchange 組織。
找出指定使用者在指定時段內所傳送的所有郵件。
開始之前有哪些須知?
預估完成時間:10 分鐘
您必須已獲指派權限,才能執行此程序或這些程序。 若要查看您需要的權限,請參閱 郵件流程權限主題中的「郵件追蹤」項目。
搜尋郵件追蹤蹤記錄檔時,需要 Microsoft Exchange Transport Log Search 服務正在執行中。 若您停用或停止此服務,您就無法搜尋郵件追蹤記錄或執行傳遞回報。 但是,停止此服務並不會影響 Exchange 中的其它功能。
Get-MessageTrackingLog Cmdlet 的結果所顯示的欄位名稱,與郵件追蹤記錄中所找到的實際欄位名稱相類似。 最大的差異在於:
破折號已從欄位名稱中移除。 例如, internal-message-id 會顯示為
InternalMessageId
。日期時間欄位會顯示為
Timestamp
。收 件者地址欄 位會顯示為
Recipients
。寄 件者地址欄 位會顯示為
Sender
。
郵件追蹤記錄中的 date-time 欄位會以 Coordinated Universal Time (UTC) 儲存資訊。 不過,您必須以您用來執行搜尋之計算機的區域日期時間格式,輸入 開始 或 結束 參數的日期時間搜尋準則。
您不能從其他 Exchange 伺服器複製郵件追蹤記錄,然後又使用 Get-MessageTrackingLog Cmdlet 來搜尋這些郵件追蹤記錄。 此外,如果您手動儲存現有的郵件追蹤記錄,則檔案之日期時間戳記變更時,會破壞 Exchange 用來搜尋郵件追蹤記錄的查詢邏輯。
在 Exchange 2016 中, Get-MessageTrackingLog Cmdlet 可以在相同 Active Directory 網站的 Exchange 2013 信箱伺服器和 Exchange 2010 Hub Transport Server 上搜尋郵件追蹤記錄。 在 Exchange 2019 中, Get-MessageTrackingLog Cmdlet 可以在相同 Active Directory 網站的 Exchange 2016 和 Exchange 2013 信箱伺服器上搜尋郵件追蹤記錄。
如需適用於此主題中程序的快速鍵相關資訊,請參閱 Exchange 系統管理中心的鍵盤快速鍵。
提示
有問題嗎? 在 Exchange 論壇中尋求協助。 此論壇的網址為:Exchange Server、Exchange Online 或 Exchange Online Protection。
使用 Exchange 管理命令介面來搜尋郵件追蹤記錄
若要搜尋特定事件的郵件追蹤記錄項目,請使用下列語法。
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
本範例會搜尋本地伺服器上的訊息追蹤記錄,以尋找從 2015 年 3 月 28 日上午 8:00 到 2015 年 3 月 28 日下午 5:00 的所有 專案 ,以尋找郵件發件者為 pat@contoso.com的所有 FAIL 事件。
Get-MessageTrackingLog -ResultSize Unlimited -Start "3/28/2015 8:00AM" -End "3/28/2015 5:00PM" -EventId "Fail" -Sender "pat@contoso.com"
使用 Exchange 管理命令介面來控制郵件追蹤記錄搜尋的輸出
使用下列語法。
Get-MessageTrackingLog <SearchFilters> | <Format-Table | Format-List> [<FieldNames>] [<OutputFileOptions>]
本範例會使用下列搜尋準則來搜尋郵件追蹤記錄:
傳回前 1,000 個 Send 事件的結果。
以清單格式顯示結果。
只顯示開頭為 或
Recipient
的Send
功能變數名稱。將輸出寫入名為 的新檔案
D:\Send Search.txt
Get-MessageTrackingLog -EventId Send | Format-List Send*,Recipient* | Set-Content -Path "D:\Send Search.txt"
使用 Exchange 管理命令介面在多部伺服器上搜尋郵件追蹤記錄中的郵件項目
一般來說, MessageID: 標頭欄位中的值,在郵件於整個 Exchange 組織中傳輸時會維持不變。 在佇列檢視公用程式中,此內容名為 InternetMessageId ,在郵件追蹤記錄檢視公用程式中,此內容名為 MessageId 。 在您判斷特定郵件的 MessageID: 值之後,即可在 Exchange 組織中每部 Mailbox Server 上的郵件追蹤記錄檔中,搜尋該郵件的相關資訊。
若要在所有 Mailbox Server 和 Exchange 2010 Hub Transport Server 中搜尋特定郵件的所有郵件追蹤記錄項目,請使用下列語法。
$Servers = Get-ExchangeServer; $Servers | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -MessageId <MessageID> | Select-Object <CommaSeparatedFieldNames> | Sort-Object -Property <FieldName>
本範例會使用下列搜尋準則,搜尋所有 Mailbox Server 和 Exchange 2010 Hub Transport Server 上的郵件追蹤記錄:
尋找與 MessageID: 值為 的
<ba18339e-8151-4ff3-aeea-87ccf5fc9796@mailbox01.contoso.com>
訊息相關的任何專案。 請注意,您可以省略角括號字元 (<
>
) 。 如果您不這樣做,則需要將整個 MessageID: 值用引號括住。對於每個項目,顯示 date-time 、 server-hostname 、 client-hostname 、 source 、 event-id 和 recipient-address 欄位。
依 date-time 欄位排序結果。
$Servers = Get-ExchangeServer; $Servers | 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) 中使用系統管理員的「傳遞回報」功能來搜尋郵件追蹤記錄,以取得組織中由特定信箱傳送或接收之郵件的相關資訊。 如需詳細資訊,請參閱使用傳遞回報追蹤郵件。