Exchange Server: журналы отслеживания сообщений поиска

В журнал отслеживания сообщений записывается информация о потоке обработки почты на серверах почтовых ящиков и пограничных транспортных серверах. Командлет Get-MessageTrackingLog в командной консоли Exchange позволяет искать записи в журнале отслеживания сообщений, используя определенные условия поиска. Например, вы можете:

  • узнать, что произошло с сообщением, отправленным пользователем определенному получателю;

  • Узнайте, действовало ли на сообщение правило обработки почты (также известное как правило транспорта).

  • узнать, поступило ли в вашу организацию Exchange сообщение, отправленное из Интернета;

  • найти все сообщения, отправленные пользователем за определенный период.

Что нужно знать перед началом работы

  • Предполагаемое время выполнения: 10 минут.

  • Для выполнения этой процедуры (процедур) необходимы соответствующие разрешения. Сведения о необходимых разрешениях см. в записи "Отслеживание сообщений" в разделе Разрешения потока обработки почты .

  • Для поиска в журналах отслеживания сообщений должна быть запущена служба поиска журналов транспорта Microsoft Exchange. Если вы отключите или остановите эту службу, то не сможете выполнять поиск в журналах отслеживания сообщений или создавать отчеты о доставке. Однако остановка этой службы не затрагивает другие функции Exchange.

  • Имена полей в результатах командлета Get-MessageTrackingLog похожи на имена полей в файлах журнала отслеживания сообщений. Ниже приведены основные различия.

    • Из имен полей удаляются дефисы. Например, internal-message-id отображается как InternalMessageId.

    • Поле даты и времени отображается как Timestamp.

    • Поле адреса получателя отображается как Recipients.

    • Поле отправителя-адреса отображается как Sender.

  • В поле date-time журнала отслеживания сообщений информация хранится в формате UTC. Однако необходимо ввести критерии поиска даты и времени для параметров Start или End в формате регионального времени даты и времени компьютера, который вы используете для поиска.

  • Нельзя скопировать файлы журнала отслеживания сообщений с другого сервера Exchange, а затем выполнить в них поиск с помощью командлета Get-MessageTrackingLog. Кроме того, если вручную сохранить файл журнала отслеживания сообщений, изменение метки даты и времени в файле нарушит логику запросов, используемую в Exchange для поиска данных в журналах отслеживания сообщений.

  • В Exchange 2016 командлет Get-MessageTrackingLog позволяет выполнять поиск журналов отслеживания сообщений на серверах почтовых ящиков Exchange 2013 и транспортных серверах-концентраторах Exchange 2010 на том же сайте Active Directory. В Exchange 2019 командлет Get-MessageTrackingLog позволяет выполнять поиск журналов отслеживания сообщений на серверах почтовых ящиков Exchange 2016 и Exchange 2013 на одном сайте Active Directory.

  • Сочетания клавиш для процедур, описанных в этой статье, приведены в статье Сочетания клавиш в Центре администрирования 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

В этом примере выполняется поиск всех записей в журналах отслеживания сообщений на локальном сервере с 28.03.2015 с 8:00 по 28.03.2015 17:00 для всех событий FAIL , в которых отправитель сообщения был pat@contoso.com.

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

Введите команду в следующем формате.

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

В этом примере в журналах отслеживания сообщений выполняется поиск со следующими условиями.

  • Возвращаются результаты для первых 1000 событий с меткой Send.

  • Результаты отображаются в формате списка.

  • Отображение только тех имен полей, которые начинаются с Send или Recipient.

  • Запись выходных данных в новый файл с именем 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.

Для поиска определенного сообщения во всех записях журнала отслеживания сообщений на всех серверах почтовых ящиков и транспортных серверах-концентраторах Exchange 2010 используйте такой синтаксис:

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

В этом примере в журналах отслеживания сообщений на всех серверах почтовых ящиков и транспортных серверах-концентраторах Exchange 2010 выполняется поиск с указанными ниже условиями.

  • Найдите все записи, связанные с сообщением, которое имеет 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

Использование Центра администрирования Exchange для поиска данных в журналах отслеживания сообщений

Вы можете использовать функцию "Отчеты о доставке для администраторов" в Центре администрирования Exchange (EAC) для поиска в журналах отслеживания сообщений на наличие сведений о сообщениях, отправленных или полученных определенным почтовым ящиком в вашей организации. Дополнительные сведения см. в разделе Отслеживание сообщений с помощью отчетов о доставке.