搜索邮件跟踪日志
适用于: 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 字段以协调世界时 (UTC) 格式存储信息。 但是,应以用于执行搜索的计算机的区域日期时间格式输入 开始 或 结束 参数的日期时间搜索条件。
无法复制其他 Exchange 服务器上的邮件跟踪日志,然后使用 Get-MessageTrackingLog cmdlet 进行搜索。 此外,如果手动保存现有邮件跟踪日志文件,那么此文件的日期时间时间戳的变化会破坏 Exchange 用来搜索邮件跟踪日志的查询逻辑。
Exchange 2013 Get-MessageTrackingLog cmdlet 能够在同一 Active Directory 站点中的 Exchange 2007 和 Exchange 2010 服务器上搜索邮件跟踪日志。
若要了解本主题中的过程可能适用的键盘快捷键,请参阅 Exchange 管理中心内的键盘快捷键。
提示
是否有任何疑问? 在 Exchange 论坛中寻求帮助。 访问 Exchange Server 上的论坛。
使用 Shell 搜索邮件跟踪日志
若要搜索具体事件的邮件跟踪日志条目,请使用下列语法:
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
本示例在本地服务器上的邮件跟踪日志中搜索从 3/28/2013 8:00 AM 到 3/28/2013 5:00 PM 的所有 条目 ,查找消息发送者所在的 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"
使用 Shell 控制邮件跟踪日志搜索的输出
使用下列语法:
Get-MessageTrackingLog <SearchFilters> | <Format-Table | Format-List> [<FieldNames>] [<OutputFileOptions>]
本示例使用下列搜索条件搜索邮件跟踪日志:
返回前 1000 个 Send 事件的结果。
结果通过列表格式显示。
仅显示以 或
Recipient
开头的Send
那些字段名称。将输出写入名为 的新文件
D:\Send Search.txt
Get-MessageTrackingLog -EventId Send | Format-List Send*,Recipient* > "D:\Send Search.txt"
使用 Shell 在邮件跟踪日志中搜索多个服务器上的消息条目
一般来说, MessageID: 标头字段中的值在邮件通过整个 Exchange 组织的过程中保持不变。 此属性在队列视图实用工具中名为 InternetMessageId ,而在邮件跟踪日志视图实用工具中则名为 MessageId 。 确定 MessageID:
特定邮件的值后,可以在 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-time 、 server-hostname 、 client-hostname 、 source 、 event-id 和 recipient-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) 中的送达报告(管理员功能)搜索邮件跟踪日志中有关组织中特定邮箱发送或接收的邮件的信息。 有关详细信息,请参阅 使用传递报告跟踪邮件。