отслеживание_и_поиск_сообщений

Отслеживание сообщений

Отслеживание сообщений через транспортные логи

Удобные команды, с помощью которых можно отслеживать логи сообщений.

Последние 12 часов по отправителю:

Get-MessageTrackingLog -Start (Get-Date).AddHours(-12) -ResultSize unlimited | where {[string]$_.sender -like "user@domain.ru"}

Последние 12 часов по получателю:

Get-MessageTrackingLog -Start (Get-Date).AddHours(-12) -ResultSize unlimited | where {[string]$_.recipients -like "username*"}

По отправителю и получателю за последние 24 часа:

Get-MessageTrackingLog -Start (Get-Date).AddHours(-24) -ResultSize unlimited | where {[string]$_.sender -like "sender@domain.ru" -and [string]$_.recipients -like "recepient@domain.ru"}

Конкретная дата по получателю:

Get-MessageTrackingLog -Start "06/21/2024 00:00:01" -End "06/22/2024 00:00:01" -ResultSize unlimited | where {[string]$_.recipients -like "user*"}

Вывести информацию с адресами клиентов для события RECEIVE из MessageTrackingLog

Get-TransportService | ForEach-Object {Get-MessageTrackingLog -Start "06/21/2024 00:00:01" -End "06/22/2024 00:00:01" -ResultSize unlimited -EventId RECEIVE | where {[string]$_.recipients -like "user*"}} | Select-Object -Property Sender,Recipients,Timestamp,OriginalClientIp

Поиск сообщений через Search-Mailbox

В некоторых случаях, к примеру, если штатная функция eDiscovery не работает, или не выполняеется командлет поиска по всей организации New-MailboxSearch (такое может случиться по разным причинам), нам может помочь циклический поиск по всем ящикам организации через search-mailbox.

В данном примере мы выполним поиск по всем ящикам организации для mailbox@mail.ru как в качестве возможного отправителя и в качестве возможного получателя (для этого используется параметр participants), начиная с 2019-го года с полным уровнем логирования поиска (LogLevel Full) и отправим результаты в ящик Exchange mailbox_results - в папку search_results_mailbox.

$allmbxinyourorg = Get-Mailbox -ResultSize unlimited
Foreach ($mbx in $allmbxinyourorg) {
Search-Mailbox -identity $mbx -SearchQuery '(participants: mailbox@mail.ru) AND received>"2019-01-01"' -TargetMailbox "mailbox_results" -TargetFolder "search_results_mailbox" -LogLevel Full
}

А в данном примере поищем упоминания слова word в теле письма или его теме.

$allmbxinyourorg = Get-Mailbox -ResultSize unlimited
Foreach ($mbx in $allmbxinyourorg) {
Search-Mailbox -identity $mbx -SearchQuery '(Body:"word" OR Subject:"word")' -TargetMailbox "search_results_mailbox" -TargetFolder "search_results_folder" -LogLevel Full
}

Запросить всю внешнюю почту для конкретного ящика “user@contoso.com”, исключая внутренний домен contoso.com (пользователь, как видно, принадлежит данному домену), можно командлетом, в котором сначала отрабатывается условие для получения всех входящих, исключая выделенный домен, а затем фильтруется исходящие (домен также исключается).

search-mailbox -identity "user@contoso.com" -SearchQuery '((NOT from:"@contoso.com") AND (NOT from:"User*")) OR ((NOT to:"@contoso.com") AND (NOT to:"User*"))' -TargetMailbox "search_result_mailbox" -TargetFolder "search_results_folder"

Запросы на экспорт могут копиться. Если требуется очистить ВСЕ запросы - это можно сделать так:

 get-mailboxexportrequest | Remove-MailboxExportRequest
отслеживание_и_поиск_сообщений.txt · Last modified: 2025/01/13 09:28 by jp