如何搜尋郵件追蹤記錄
適用版本: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007
上次修改主題的時間: 2011-10-04
本主題說明如何使用 Exchange 管理主控台或 Exchange 管理命令介面,來搜尋郵件追蹤記錄。
郵件追蹤記錄是郵件是與已安裝 Hub Transport server role、Mailbox server role 或 Edge Transport server role 的 Microsoft Exchange Server 2007 的電腦往返傳送之所有郵件活動的詳細記錄。已安裝 Client Access server role 或 Unified Messaging server role 的 Exchange 伺服器不會有郵件追蹤記錄。您可以使用郵件追蹤記錄進行郵件鑑識、郵件流程分析、報告及疑難排解等工作。
在 Exchange 2007 量產發行 (RTM) 版本及 Exchange 2007 Service Pack 1 (SP1) 中,您可以在 Exchange 管理命令介面中使用 Get-MessageTrackingLog 指令程式,或者在 Exchange 管理主控台中使用郵件追蹤工具,以特定的搜尋準則來搜尋郵件追蹤記錄中的項目。
在 Exchange 2007 SP1 中,您可以使用新的 Exchange 管理命令介面指令碼 GetMessageTrackingLogE2EwithTime.ps1
,以在 Exchange 組織之所有 Hub Transport Server 及 Mailbox Server 的所有郵件追蹤記錄中,搜尋特定項目。這適用於想要追蹤郵件在 Exchange 組織中傳送的完整端對端路徑時。
開始之前
若要在 Exchange 2007 RTM 中執行下列程序,則使用的帳戶必須已委派下列資格:
- Exchange Server 系統管理員角色和目標伺服器的本機 Administrators 群組
若要在 Exchange 2007 SP1 中執行下列程序,則使用的帳戶必須已委派下列資格:
- Exchange 僅檢視管理角色
若要在 Exchange 2007 RTM 或 Exchange 2007 SP1 中已安裝 Edge Transport server role 的電腦上執行下列程序,則必須使用該電腦之本機 Administrators 群組成員的帳戶進行登入。
如需管理 Exchange 2007 所需之權限、委派角色及權利的相關資訊,請參閱權限考量。
當您使用 Hub Transport Server 或 Mailbox Server 上的 Get-MessageTrackingLog 指令程式或郵件追蹤工具來執行郵件追蹤記錄檔搜尋作業時,不能存取 Edge Transport Server 上的郵件追蹤記錄檔。如果您要搜尋 Edge Transport Server 上的郵件追蹤記錄檔,必須直接從 Edge Transport Server 執行 Get-MessageTrackingLog 指令程式或郵件追蹤工具。
郵件追蹤記錄的搜尋依賴 Microsoft Exchange Transport Log Search 服務。如果您停用或停止此服務,除了會遺失記錄搜尋的功能之外,Exchange 2007 伺服器並不會有其他明顯的問題。
您不能從 Exchange 伺服器複製郵件追蹤記錄檔,然後在不同的 Exchange 伺服器上使用 Get-MessageTrackingLog 指令程式或郵件追蹤工具來搜尋所複製的記錄檔。此外,如果您儲存現有的郵件追蹤記錄檔,則郵件追蹤記錄檔日期時間戳記的變更會破壞用來搜尋郵件追蹤記錄檔的查詢邏輯。
郵件追蹤記錄搜尋的準則
雖然每個郵件追蹤記錄項目都有 20 個以上的資料欄位可用,但不是每個欄位都可作為搜尋篩選器。Exchange 管理命令介面中的搜尋篩選器亦可在 Exchange 管理主控台中使用,因為 Exchange 管理主控台會使用 Get-MessageTrackingLog 指令程式來搜尋郵件追蹤記錄檔。不過,Exchange 管理命令介面較能讓您控制搜尋結果。
Exchange 管理主控台和 Exchange 管理命令介面常用的搜尋篩選器
不論是在 Exchange 管理命令介面中使用 Get-MessageTrackingLog 指令程式或在郵件追蹤工具中,下列清單中所描述的搜尋篩選器都會有相同的使用和操作方式:
附註: |
---|
除非另有註明,否則不支援使用含有部份值或多個值的搜尋篩選器。 |
- Recipients 此搜尋篩選器會使用 recipient-address 欄位。您必須輸入完整的收件者電子郵件地址。使用逗號作為分隔符號,則可以指定多位收件者值。使用單一郵件追蹤記錄項目,可以記錄單一郵件中所含的多位個別收件者。使用通訊群組的 SMTP 電子郵件地址,則可以記錄未展開的通訊群組收件者。
- Sender 此搜尋篩選器會使用 sender 欄位。您必須輸入完整的寄件者電子郵件地址。Sender 欄位包含
Sender:
標頭欄位或From:
標頭欄位 (如果Sender:
不存在) 中指定的寄件者電子郵件地址。 - Server 此搜尋篩選器指定內含所要搜尋之郵件追蹤記錄檔的 Exchange 2007 伺服器。您可以使用下列任一值來描述伺服器:
- 名稱
- 網域全名 (FQDN)
- 辨別名稱 (DN)
- 傳統 Exchange DN
- GUID
- EventID 此搜尋篩選器會使用 event-id 欄位。請在郵件追蹤工具中,從下拉式清單選取 EventID 的值。在 Get-MessageTrackingLog 指令程式中,以文字輸入 EventID 的值。不過,該值必須完全符合其中一個可能的 EventID 值。EventID 是指派給每個郵件追蹤記錄項目的事件分類。可用的值包括 BADMAIL、DEFER、DELIVER、DSN、EXPAND、FAIL、POISONMESSAGE、RECEIVE、REDIRECT、RESOLVE、SEND、SUBMIT 和 TRANSFER。
- MessageID 此搜尋篩選器會使用 message-id 欄位。MessageID 是
Message-ID:
標頭欄位的值。如果Message-ID:
標頭欄位不存在或空白,則會指派任意值。此值是郵件存留時間的常數。 - InternalMessageID 此搜尋篩選器會使用 internal-message-id 欄位。InternalMessageID 是目前處理郵件之 Exchange 2007 伺服器所指派的郵件識別碼整數。
- Subject** Get-MessageTrackingLog** 指令程式中的參數名稱為 MessageSubject。此搜尋篩選器會使用 message-subject 欄位。支援部份值。這是
Subject:
標頭欄位中指定的郵件主旨。在 Hub Transport Server 及 Edge Transport Server 上,郵件主旨的追蹤作業是由 Set-TransportServer 指令程式的 MessageTrackingLogSubjectLoggingEnabled 參數所控制,在 Mailbox Server 上,則是由 Set-MailboxServer 指令程式所控制。預設會啟用郵件主旨記錄。將 MessageTrackingLogSubjectLoggingEnabled 參數的值設定為$False
,可停用郵件主旨記錄。 - Reference 此搜尋篩選器會使用 reference 欄位。此欄位包含特定事件類型的其他資訊。若為 DSN 事件,reference 欄位會包含造成 DSN 之郵件的
MessageID:
。若為 SEND 事件,reference 欄位會包含任何 DSN 郵件的MessageID:
。若為 TRANSFER 事件,reference 欄位會包含要分支之郵件的MessageID:
。 - Start 此搜尋篩選器會使用日期時間欄位,來尋找以所指定結束日期及時間開始的郵件追蹤項目。您可以單獨使用此篩選器來擷取指定的日期時間之後的所有郵件追蹤記錄項目,或是作為 End 參數的下限。
- End 此搜尋篩選器會使用日期時間欄位,來尋找截至指定之結束日期和時間 (不含) 的郵件追蹤項目。您可以單獨使用此篩選器來擷取指定的日期時間之前的所有郵件追蹤記錄項目,或是作為 Start 參數的上限。
附註: |
---|
郵件追蹤記錄檔中的日期時間欄位會以 Coordinated Universal Time (UTC) 儲存資訊。不過,請根據您執行搜尋之電腦上的地區日期時間格式,來輸入日期時間搜尋準則。郵件追蹤記錄檔搜尋工具會自動將地區日期時間查詢轉換成 UTC。搜尋結果會自動從 UTC 轉換回地區日期時間格式來顯示。日期時間欄位中會記錄特定郵件追蹤事件的日期時間。郵件原始日期時間是指郵件最初進入 Exchange 組織的日期時間。郵件原始日期時間會儲存在所有 SEND 和 DELIVER 事件的 message-info 欄位中。 |
Exchange 管理主控台和 Exchange 管理命令介面的不同搜尋篩選器
在 Exchange 管理命令介面中,Get-MessageTrackingLog 指令程式可使用 ResultSize 參數,準確控制要顯示的搜尋結果數量。依預設,搜尋最多可顯示 1,000 個結果。不過,您可以將最大值改為特定的數字。或者,您也可以使用 Unlimited
的值來顯示所有結果。Exchange 管理命令介面中的郵件追蹤工具無法自訂顯示的搜尋結果數目上限。
使用 Exchange 管理命令介面搜尋郵件追蹤記錄
下表列出在 Exchange 管理命令介面中使用 Get-MessageTrackingLog 指令程式時可用的搜尋篩選器。
使用 Get-MessageTrackingLog 指令程式時可用的搜尋篩選器
搜尋篩選器 | 郵件追蹤記錄中相對應的欄位 |
---|---|
End |
date-time |
EventId |
event-id |
InternalMessageId |
internal-message-id |
MessageId |
message-id |
MessageSubject |
message-subject |
Recipients |
recipient-address |
Reference |
reference |
ResultSize |
無。此參數會限制由搜尋所顯示的結果數目。 |
Sender |
sender-address |
Start |
date-time |
Get-MessageTrackingLog 指令程式可用的所有參數都是選用性。如果只輸入 Get-MessageTrackingLog 指令程式而不加任何參數,則會顯示最後 1,000 個郵件追蹤記錄項目。
使用 Exchange 管理命令介面搜尋郵件追蹤記錄
執行下列命令:
Get-MessageTrackingLog <SearchFilters>
例如,若要在郵件追蹤記錄中搜尋由 pat@contoso.com,在 7/28/2006 8:00 AM 至 7/28/2006 5:00 PM 期間傳送之所有 FAIL 事件的所有項目,請執行下列命令:
Get-MessageTrackingLog -ResultSize Unlimited -Start "7/28/2006 8:00AM" -End "7/28/2006 5:00PM" -EventId "Fail" -Sender "pat@contoso.com"
控制在 Exchange 管理命令介面中執行之郵件追蹤記錄搜尋的輸出
使用 Get-MessageTrackingLog 指令程式來執行郵件追蹤記錄搜尋時,不是每個郵件追蹤事件都會顯示所有欄位。下表列出 Get-MessageTrackingLog 指令程式預設顯示的欄位。
Get-MessageTrackingLog 指令程式預設顯示的欄位
搜尋欄位 | 郵件追蹤記錄中相對應的欄位 |
---|---|
EventId |
event-id |
Source |
message-source |
Sender |
sender-address |
Recipients |
recipient-address |
MessageSubject |
message-subject |
您可以在 Exchange 管理命令介面中使用命令輸出選項,來控制 Get-MessageTrackingLog 指令程式的輸出,如下列清單所述:
您可以控制郵件追蹤記錄搜尋的輸出格式。您可以將結果顯示成清單或表格。
重要事項: 雖然表格格式似乎很適合作為輸出格式,但不一定是最佳選擇。如果表格中顯示的欄位值太長,則值會被截斷,以便放入表格的欄位中。如果嘗試同時顯示太多欄位,也會發生截斷情形。使用清單格式就可保證一律會顯示完整的欄位值。若要檢視其他欄,則也可以增加 [Exchange 管理命令介面] 視窗的寬度,而該視窗的預設值是 80 個字元。請在 [Exchange 管理命令介面] 視窗的內容中調整 [Exchange 管理命令介面] 視窗的大小。 您可以顯示或隱藏郵件追蹤記錄搜尋所傳回的特定欄位。支援萬用字元 (*)。
您可以將搜尋結果傳送至檔案。
Get-MessageTrackingLog 指令程式之結果所顯示的欄位名稱,和您用來篩選搜尋結果的欄位名稱相同。這些欄位名稱與郵件追蹤記錄中所儲存的實際欄位名稱有些微差異。下表並列顯示郵件追蹤記錄檔中使用的欄位名稱和 Get-MessageTrackingLog 指令程式使用的欄位名稱。
比較郵件追蹤記錄檔中使用的欄位名稱和 Get-MessageTrackingLog 指令程式使用的欄位名稱
郵件追蹤記錄中使用的欄位名稱 | 用來篩選 Get-MessageTrackingLog 結果的欄位名稱 |
---|---|
date-time |
Timestamp |
client-ip |
ClientIp |
client-hostname |
ClientHostname |
server-ip |
ServerIp |
server-hostname |
ServerHostname |
source-context |
SourceContext |
connector-id |
ConnectorId |
source |
Source |
event-id |
EventId |
internal-message-id |
InternalMessageId |
message-id |
MessageId |
recipient-address |
Recipients |
recipient-status |
RecipientStatus |
total-bytes |
TotalBytes |
recipient-count |
RecipientCount |
related-recipient-address |
RelatedRecipientAddress |
reference |
Reference |
message-subject |
MessageSubject |
sender-address |
Sender |
return-path |
ReturnPath |
message-info |
MessageInfo |
使用 Exchange 管理命令介面控制郵件追蹤記錄搜尋的輸出
使用下列命令:
Get-MessageTrackingLog <SearchFilters> | <Format-Table | Format-List> <FieldNames> <OutputFileOptions>
例如,若要在郵件追蹤記錄中搜尋前 1,000 個 Send 事件、以清單格式顯示結果、顯示以 "Send" 或 "Receive" 開頭之任何欄位名稱的值,然後將結果寫入名為 "C:\send search.txt" 的新檔案中,請執行下列命令:
Get-MessageTrackingLog -EventId "Send" | Format-List Send*,Receive* > "C:\send search.txt"
使用 Exchange 管理命令介面,在多部伺服器上的郵件追蹤記錄檔中搜尋某封郵件
郵件在整個 Exchange 組織中傳輸時,始終都不會改變的郵件內容就是 MessageID:
標頭欄位。在佇列檢視公用程式中,此值名為 InternetMessageId
,在郵件追蹤記錄檔公用程式中,此值則名為 MessageId
。判定 MessageID:
的值之後,即可在 Exchange 組織中每部 Hub Transport Server 或 Mailbox Server 上的郵件追蹤記錄檔中搜尋該郵件。
使用 Exchange 管理命令介面在所有 Hub Transport Server 及 Mailbox Server 中搜尋特定郵件的郵件追蹤記錄檔項目
使用下列命令:
Get-ExchangeServer | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -MessageId "<messageid>" | Select-Object <commaseparatedfieldnames> | Sort-Object -Property <field>
例如,若要在所有 Hub Transport Server 及 Mailbox Server 上的郵件追蹤記錄檔中搜尋與
MessageID:
為ba18339e-8151-4ff3-aeea-87ccf5fc9796@contoso.com
之郵件相關的任何項目,顯示date-time
、server-hostname
、client-hostname
、source
、event-id
及recipient-address for each entry
欄位,然後依date-time
欄位將結果排序,請執行下列命令:Get-ExchangeServer | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -MessageId "ba18339e-8151-4ff3-aeea-87ccf5fc9796@contoso.com" | Select-Object Timestamp,ServerHostname,ClientHostname,Source,EventId,Recipients | Sort-Object -Property Timestamp
如需詳細的語法及參數資訊,請參閱 Get-MessageTrackingLog。
如需 Exchange 管理命令介面中命令輸出選項的相關資訊,請參閱使用命令列輸出。
在 Exchange 2007 SP1 中使用 Exchange 管理命令介面指令碼,在多部伺服器的郵件追蹤記錄中搜尋郵件
如本主題前面所述,Exchange 2007 SP1 包含 Exchange 管理命令介面指令碼 GetMessageTrackingLogE2EwithTime.ps1
。此指令碼使用 Get-MessageTrackingLog 指令程式,根據指定的郵件準則來搜尋 Exchange 組織之所有 Hub Transport Server 及所有 Mailbox Server 的郵件追蹤記錄。您也可以使用此指令碼,來搜尋特定 Hub Transport Server 及 Mailbox Server 清單的郵件追蹤記錄。
此指令碼使用下表中所述的參數。
GetMessageTrackingLogE2EwithTime.ps1 指令碼使用的參數
參數 | 必要或選用 | 描述 |
---|---|---|
MessageId |
未指定 MessageSubject 參數的值時,需要有此參數。 |
此參數搜尋的郵件追蹤記錄項目,具有郵件中指定的 |
MessageSubject |
未指定 MessageId 參數的值時,需要有此參數。 |
此參數搜尋的郵件追蹤記錄項目,內含郵件之 |
End |
選用 |
此參數會使用執行指令程式之電腦的地區格式,搜尋到達但不包含所指定 End 日期及時間的郵件追蹤記錄項目。指定的日期會自動轉換成 UTC 格式,而 Exchange 2007 內部會使用此格式將項目儲存至郵件追蹤記錄中。 |
Sender |
選用 |
此參數搜尋的郵件追蹤記錄項目,具有所指定寄件者的 SMTP 電子郵件地址。如果指定 Sender 屬性的值,而且郵件寄件者是可以解析的內部寄件者,則會在寄件者的 主 Mailbox Server 上開始進行郵件追蹤記錄搜尋。 |
Servers |
選用 |
此參數指定以逗號分隔的 Hub Transport Server 或 Mailbox Server 名稱清單。此參數會將郵件追蹤記錄的搜尋限制為指定的伺服器。 |
Start |
選用 |
此參數會使用執行指令程式之電腦的地區格式,搜尋以所指定 Start 日期及時間開始的郵件追蹤記錄項目。指定的日期會自動轉換成 UTC 格式,而 Exchange 2007 內部會使用此格式將項目儲存至郵件追蹤記錄中。 |
您必須使用 MessageId 或 MessageSubject 參數,識別用來當成搜尋根據的特定郵件。如果未指定 Sender 參數或 Server 參數的值,則郵件追蹤記錄會在執行 GetMessageTrackingLogE2EwithTime.ps1
指令碼的 Hub Transport Server 或 Mailbox Server 上開始搜尋。
下表列出 GetMessageTrackingLogE2EwithTime.ps1
指令碼結果中顯示的欄位。
GetMessageTrackingLogE2EwithTime.ps1 指令碼結果中顯示的欄位
顯示的欄位 | 郵件追蹤記錄中相對應的欄位 |
---|---|
TimeStamp |
date-time |
EventId |
event-id |
Source |
message-source |
Sender |
sender-address |
RecipientCount |
recipient-count |
InternalMessageID |
internal-message-id |
Reference |
reference |
SourceContext |
source-context |
會以將欄位顯示為欄的表格格式來顯示指令碼結果。每個欄位的整個值都會顯示在欄中。如果欄位太寬,則顯示會截斷其餘的欄。如本主題前面所說明,若要檢視其他欄,您可以增加 [Exchange 管理命令介面] 視窗的寬度,而該視窗的預設值是 80 個字元。請在 [Exchange 管理命令介面] 視窗的內容中調整 [Exchange 管理命令介面] 視窗的大小。
使用 GetMessageTrackingLogE2EwithTime.ps1 指令碼,以利用 Exchange 管理命令介面在所有 Hub Transport Server 及 Mailbox Server 中搜尋郵件追蹤記錄檔項目以找出特定郵件
使用下列命令:
GetMessageTrackingLogE2EwithTime.ps1 <-MessageId "message id" | -MessageSubject "message subject"> -<Other Optional Parameters>
例如,若要在所有 Hub Transport Server 及 Mailbox Server 的郵件追蹤記錄中搜尋與文字字串為 "financial report" 且來自寄件者 "chris@contoso.com" 之郵件相關的任何項目,請執行下列命令:
GetMessageTrackingLogE2EwithTime.ps1 -MessageSubject "financial report" -Sender "chris@contoso.com"
如需 Exchange 管理命令介面指令碼的相關資訊,請參閱使用 Exchange 管理命令介面撰寫指令碼。
使用 Exchange 管理控制台搜尋郵件追蹤記錄
使用 Exchange 管理主控台搜尋郵件追蹤記錄
開啟 Exchange 管理主控台。
在主控台樹狀目錄中,按一下 [工具箱]。在結果窗格中,按一下 [郵件追蹤]。在執行窗格中,按一下 [開啟工具]。
在 [郵件追蹤參數] 對話方塊中,選取搜尋準則名稱旁的核取方塊,並且在該搜尋準則中輸入一個值,以設定郵件追蹤記錄檔搜尋準則。若要移除搜尋準則,請清除搜尋準則名稱旁的核取方塊。預設會選取下列搜尋準則並提供值:
- EventID,值為 RECEIVE
- Start,值為開啟郵件追蹤工具的日期與時間
- End,值為關閉郵件追蹤工具的日期與時間
如果選取 [收件者] 核取方塊,並在 [收件者] 欄位中輸入部份值,則只需按一下 [解析收件者],即可填入收件者電子郵件地址的剩餘部份。只有 Hub Transport Server 或 Mailbox Server 才能使用此功能,來解析存在於 Exchange 2007 組織中之信箱使用者或擁有郵件功能之連絡人的名稱。
如果選取 [寄件者] 核取方塊,並在 [寄件者] 欄位中輸入部份值,則只需按一下 [解析寄件者],即可填入寄件者電子郵件地址的剩餘部份。只有 Hub Transport Server 或 Mailbox Server 才能使用此功能,來解析存在於 Exchange 2007 組織中之信箱使用者或擁有郵件功能之連絡人的名稱。
您也可以按一下 [來自寄件者的伺服器],將寄件者信箱所在之 Mailbox Server 的名稱填入 [伺服器] 欄位中。如果您要使用該伺服器名稱作為搜尋準則,請記得選取 [伺服器] 核取方塊。
附註: 當您輸入搜尋準則時,[Exchange 管理命令介面命令] 欄位中會填入同等的 Get-MessageTrackingLog 命令。 若要執行搜尋,請按 [下一步]。
如果搜尋作業沒有在 [郵件追蹤結果] 對話方塊中產生結果,請按一下 [返回],然後在 [郵件追蹤參數] 對話方塊中變更搜尋準則。如果任何搜尋準則有語法錯誤存在,就會顯示錯誤訊息。
如果搜尋作業產生結果,則結果會顯示在 [郵件追蹤結果] 對話方塊的表格中。每一行的每個郵件追蹤項目中都會顯示每個欄位。若要依欄位將結果排序,請按一下任一欄位的欄位標題。
若要開始新的搜尋,請在結果表格中選取個別的儲存格或一整列,然後按 [下一步]。此動作會將您帶回 [郵件追蹤參數] 對話方塊。
附註: |
---|
當您回到 [郵件追蹤參數] 對話方塊時,[郵件追蹤參數] 對話方塊中的郵件追蹤記錄檔搜尋準則內會填入您先前選取之郵件追蹤項目的值。雖然所有現有的搜尋準則都會填入值,但依預設,只會啟用下列搜尋準則:Server、MessageID、Start 及 End。Start 的值為所選取之郵件追蹤記錄檔項目時間戳記的 10 分鐘前。End 的值為所選取之郵件追蹤記錄檔項目時間戳記的 10 分鐘後。 |
若要執行其他郵件追蹤記錄檔搜尋,請接受或修改所選取的準則,然後按 [下一步]。
若要將所有搜尋準則重設成預設值 (就像剛開啟郵件追蹤工具一樣),請在主控台樹狀目錄中,按一下 [重新啟動目前的工作]。
若要回到郵件追蹤工具,請在主控台樹狀目錄中,按一下 [重新啟動目前的工作]。
若要關閉郵件追蹤工具,請按一下 [關閉]。
相關資訊
如需相關資訊,請參閱下列主題:
若要確保您目前閱讀的是最新資訊,並尋找其他的 Exchange Server 2007 說明文件,請造訪 Exchange Server 技術資源中心.