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"
Управление форматом вывода результатов поиска в журналах отслеживания сообщений с помощью командной консоли Exchange
Введите команду в следующем формате.
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) для поиска в журналах отслеживания сообщений на наличие сведений о сообщениях, отправленных или полученных определенным почтовым ящиком в вашей организации. Дополнительные сведения см. в разделе Отслеживание сообщений с помощью отчетов о доставке.