Как использовать команду PowerShell Get-MessageTrace в Office 365

Команда PowerShell Get-MessageTrace может помочь администраторам Office 365 отслеживать доставку и обработку электронных сообщений, которые могут не попадать в почтовые ящики их пользователей. В этой статье я покажу вам, как использовать команду Get-MessageTrace для управления и анализа трассировки электронных сообщений в Office 365.

Использование PowerShell Get-MessageTrace с Exchange Online

Команда Get-MessageTrace является стандартным методом для администраторов анализировать и управлять трафиком электронной почты в Exchange Online. Однако эта команда PowerShell доступна только в среде Exchange Online (часть Office 365).

Реклама

В среде Exchange на месте, команда PowerShell Get-MessageTrace недоступна, и вашим альтернативным вариантом является командлет Get-MessageTrackingLog. Команда PowerShell Get-MessageTrace предоставляет функциональность, аналогичную своему аналогу на месте, но этот командлет специально разработан для облачных сред Office 365.

Отслеживание сообщений в Exchange на месте по сравнению с Exchange Online: Основные различия

  1. Окружение: Exchange на месте работает с собственными серверами организации, в то время как Exchange Online – это облачная служба, предоставляемая компанией Microsoft.
  2. Интеграция: В Exchange Online команда Get-MessageTrace без проблем интегрируется с функциями безопасности и соответствия Office 365, в то время как в средах на месте необходимо использовать командлет Get-MessageTrackingLog.
  3. Аутентификация: Методы аутентификации и сеансы PowerShell управляются по-разному из-за облачной природы Exchange Online.
  4. Масштабируемость: Масштабируемость Exchange Online разработана для обработки больших объемов электронной почты без необходимости модернизации оборудования на месте.

Подключение к Exchange Online

Вот небольшое напоминание: для использования любых командлетов Exchange Online вам необходимо установить удаленную сеанс PowerShell с вашей средой Office 365. Откройте Windows PowerShell и выполните следующую команду.

Connect-ExchangeOnline
Using Connect-ExchangeOnline to get connected to your tenant (Image credit: Petri/Michael Reinders)

Все, вы уже привыкли, верно? Если вам нужна еще небольшая помощь с необходимыми предварительными требованиями для подключения, пожалуйста, прочтите мой предыдущий пост о как подключиться к Exchange Online.

Использование Get-MessageTrace с определенным диапазоном дат

Анализ трафика электронной почты в определенном диапазоне дат является обычной административной задачей. Командлет Get-MessageTrace позволяет фильтровать и просматривать сообщения электронной почты на основе их даты создания или доставки. Обратите внимание, что эта команда PowerShell может получить доступ к истории не более 10 дней. Если вам нужно исследовать поток электронной почты более чем за 10 дней назад, вам потребуется использовать веб-сайт Exchange Admin Center и выполнить трассировку сообщения в течение более длительного периода времени.

Реклама

Вот пошаговое руководство о том, как использовать командлет Get-MessageTrace для поиска сообщений в определенном диапазоне дат.

Последние x минут

Параметр «StartDate» используется для указания временного интервала, который вы хотите искать. Вы можете вводить даты (до максимум 10 дней). Однако вы также можете включать время. Обязательно заключите ваши диапазоны дат/времени в кавычки («»).

Давайте попробуем использовать командлет Get-MessageTrace для поиска электронных писем за последние 90 минут:

Get-MessageTrace -StartDate "08/15/2023 10:45 AM" -EndDate "08/15/2023 12:15 PM"
Using the Get-MessageTrace cmdlet to trace email message flow (Image credit: Petri/Michael Reinders)

I’ll remind you that I am using my Microsoft 365 Developer tenant, so there’s not a lot of email activity occurring. If you get no output, it simply means that no email traffic records were returned. This can be completely normal.

Реклама

Вы также можете использовать более сложную команду PowerShell для возврата на 45 минут вот так:

Get-MessageTrace -StartDate (Get-Date).AddMinutes(-45) -EndDate (Get-Date)

Позвольте мне отправить несколько электронных писем, чтобы вы могли увидеть, как будет работать вывод в вашей среде.

Последние x часов

Теперь это важно – Exchange Online практически наверняка будет записывать времена доставки электронных писем в формате UTC! Поэтому мне нужно скорректировать времена окончания, и я покажу вам, как это сделать.

Давайте вернемся к последним 8 или 9 часам:

Get-MessageTrace -StartDate "08/15/2023 10:45 AM" -EndDate "08/15/2023 7:00 PM"
We need to use UTC times when computing our search window! (Image credit: Petri/Michael Reinders)

Вот оно! Это показывает электронное письмо с другого аккаунта на мой основной аккаунт глобального администратора. Когда я печатаю это, я отправил письмо примерно в 12:15 PM (CDT). Однако UTC опережает нас на 5 часов. Вот почему строка электронной почты сообщает о доставке в 5:16 PM (UTC). Пожалуйста, имейте в виду эту разницу во времени!

Последние x дней

Хотя у меня нет истории доставки электронной почты, я все равно могу показать вам команду. Если вы хотите показать ВСЕ электронные письма, обработанные через Exchange Online, просто включите даты.

Get-MessageTrace -StartDate 08/05/2023 -EndDate 08/15/2023
We can go back a maximum of 10 days with PowerShell! (Image credit: Petri/Michael Reinders)

Там мы идем. Поскольку у меня настроен Azure AD Connect Cloud Sync в этом арендаторе, я получаю еженедельное электронное письмо с обновлениями статуса. Письмо было отправлено 8/8/2023 года.

Еще раз, помните, что вы можете искать только в течение максимум 10 дней. Если вам нужно исследовать более давние события, вам придется использовать функцию трассировки сообщений на веб-сайте Центра администратора Exchange. Там вы можете создать запрос на возврат до 90 дней.

Использование Get-MessageTrace для поиска по адресу электронной почты отправителя

Выявление сообщений, отправленных конкретным отправителем, может быть критически важным для различных целей, таких как исследование коммуникационных паттернов или решение вопросов безопасности. Командлет Get-MessageTrace позволяет вам искать трассировки сообщений по определенному адресу электронной почты.

Вот как использовать параметр «-SenderAddress» для поиска трассировок сообщений от конкретного отправителя:

Get-MessageTrace -SenderAddress "[email protected]"
We can use ‘SenderAddress’ to narrow things down (Image credit: Petri/Michael Reinders)

Классно, еще один. Приятный и интуитивно понятный. И отличный совет – если вы направите результаты в Format-List cmdlet, вы получите отличное краткое изложение результатов, включая статус доставки, идентификатор сообщения, идентификатор трассировки сообщения, адрес отправителя, адрес получателя и многое другое.

We can use Format-List to get even more details (Image credit: Petri/Michael Reinders)

Использование Get-MessageTrace для поиска по адресу электронной почты получателя

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

Давайте рассмотрим пример, здесь мы будем искать все электронные письма, доставленные мне:

Get-MessageTrace -RecipientAddress "[email protected]"
We can also narrow things down by recipients of email (Image credit: Petri/Michael Reinders)

Это показывает 3 электронных сообщения, отправленных на мой адрес электронной почты в арендаторе. И, кстати, если вы НЕ включите какие-либо параметры, связанные со временем, он сообщит о последних 48 часах.

Можно ли использовать Get-MessageTrace для поиска по теме электронного письма?

К сожалению, вы не можете использовать команду Get-MessageTrace для поиска по теме. Для этого вам потребуется использовать Microsoft Purview и создать поиск eDiscovery (содержимое). Более подробную информацию об этом вы можете найти в нашей предыдущей статье об eDiscovery.

Использование команды Get-MessageTrace для поиска по IP-адресу отправителя и получателя

Вы также можете использовать команду Get-MessageTrace для поиска по IP-адресам отправителя и получателя. Это позволяет отслеживать электронные сообщения на основе IP-адресов отправляющих и принимающих серверов. Это может быть особенно полезно для диагностики проблем доставки, выявления подозрительной активности и понимания пути, по которому проходят сообщения через вашу электронную инфраструктуру.

Здесь мы также можем использовать параметры “-ToIP” и “-FromIP”. Например, если мы хотим найти все электронные письма, идущие от источника с IP-адресом 44.42.2.55 и нашего публичного IP-адреса брандмауэра, чтобы принять электронную почту, 101.3.2.88, мы могли бы использовать следующую команду в качестве примера.

Get-MessageTrace -ToIP "4.42.2.55" -FromIP "101.3.2.88"
You can also search by IP addresses amongst the SMTP servers in question (Image credit: Petri/Michael Reinders)

Опять же, у меня здесь нет действительно крутого контента, чтобы показать вам, но это работает. Действительно, это так.

Как использовать подстановочные символы и частичные совпадения

Вы также можете использовать символы подстановки для эффективного сужения результатов. Например, по соображениям безопасности или соответствия требованиям, предположим, что ваш сотрудник по соответствию хочет увидеть запись всех электронных писем, обработанных из Gmail за последние 48 часов. Легко как пирожное!

Get-MessageTrace -SenderAddress *@gmail.com

Вот, это довольно просто сделать. И то же самое можно сделать для получателей. Если вы хотите увидеть все электронные письма, доставленные всем, у кого адрес электронной почты начинается с буквы «m», попробуйте следующую команду:

Get-MessageTrace -RecipientAddress m*@x3v6p.onmicrosoft.com

Опять же, это очень просто.

Как получить более подробные результаты с помощью Get-MessageTraceDetail

Если вам нужно расширить вывод команды Get-MessageTrace, вы будете рады узнать, что команда Get-MessageTraceDetail расширяет его и показывает вам отдельные события обработки и доставки для транзакции электронной почты. Позвольте мне показать вам.

Сначала я запущу команду Get-MessageTrace и направлю ее на команду «Format-List» (fl), чтобы получить некоторые подробности.

Get-MessageTrace | fl
We can get more detail with the ‘Format-List’ (fl) cmdlet (Image credit: Petri/Michael Reinders)

Здесь мы можем увидеть более подробную информацию о 4 электронных сообщениях за последние 48 часов. Таким образом, мы можем получить идентификатор трассировки сообщения и адрес получателя из второго электронного письма и использовать следующую команду:

Get-MessageTraceDetail -MessageTraceID e4f33ded-b67f-49b8-9a00-08db9dbb953a -RecipientAddress [email protected]
Using Get-MessageTraceDetail to get line-by-line detail for specific email messages (Image credit: Petri/Michael Reinders)

Здесь мы видим 3 события, составляющих прием и доставку электронного сообщения из Интернета в фактический почтовый ящик Megan. Здесь предоставлено очень много подробной информации. Это может показать, было ли сообщение доставлено прямо в папку “Нежелательная почта” пользователя или было ли оно автоматически перенаправлено в другой внутренний (или внешний) почтовый ящик. В целом, это очень полезная информация для специалистов по ИТ и администраторов Exchange.

Как экспортировать результаты в файл CSV

Чаще всего вы будете выполнять поисковые запросы, которые вернут МНОЖЕСТВО записей. Вам определенно захочется использовать Excel для анализа и фильтрации результатов. Для этого просто направьте свои результаты через команду Export-CSV, вот так:

Get-MessageTrace | Export-CSV AllEmailsInLast48Hours.csv
Exporting output to a CSV file (Image credit: Petri/Michael Reinders)

Это заняло всего пару секунд. Очень хорошо!

Как выполнять расширенные поисковые запросы с помощью Group-Object

Вы можете использовать cmdlet Group-Object, чтобы получить более общую информацию о доставке электронной почты.

Наиболее активные отправители электронной почты

Вы можете использовать следующую команду, чтобы найти пользователей, отправивших наибольшее количество электронных писем за последние 7 дней. Позвольте мне показать вам команду, а затем я объясню ее.

Get-MessageTrace -StartDate (Get-Date).AddDays(-10) -EndDate (Get-Date) | Group-Object -Property SenderAddress | Select Name,Count | Sort Count -Descending
We can find the most active senders with some more PowerShell piping! (Image credit: Petri/Michael Reinders)

Здесь мы сначала собираем полный список обработанных электронных писем за последние 10 дней. Затем мы берем этот вывод и используем команду Group-Object, используем свойство “SenderAddress”, получаем количество (число электронных писем) и сортируем его по наибольшему количеству вначале.

Получатели, получающие наибольшее количество электронных писем

В подобной манере мы можем быстро собрать информацию о пользователях, которые получили наибольшее количество электронных писем за последние 10 дней, запустив ту же команду и заменив свойство “SenderAddress” на “RecipientAddress”. Посмотрим, что произойдет:

Get-MessageTrace -StartDate (Get-Date).AddDays(-10) -EndDate (Get-Date) | Group-Object -Property RecipientAddress | Select Name,Count | Sort Count -Descending
Similarly, we can find the users receiving the most email (Image credit: Petri/Michael Reinders)

I do love how powerful and simple PowerShell can be. Now, we have the information. Again, the data in this tenant is VERY low. You will undoubtedly see more robust results when you run these commands in your tenant.

Команда Get-MessageTrace предлагает гибкость и контроль

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

Source:
https://petri.com/powershell-get-messagetrace/