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

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
отслеживание_и_поиск_сообщений [2024/12/27 12:35] – removed - external edit (Unknown date) 127.0.0.1отслеживание_и_поиск_сообщений [2025/01/13 09:28] (current) jp
Line 1: Line 1:
 +===== Отслеживание сообщений =====
  
 +=== Отслеживание сообщений через транспортные логи ===
 +
 +Удобные команды, с помощью которых можно отслеживать логи сообщений. 
 +
 +Последние 12 часов по отправителю:
 +
 +<WRAP prewrap>
 +<code>
 +Get-MessageTrackingLog -Start (Get-Date).AddHours(-12) -ResultSize unlimited | where {[string]$_.sender -like "user@domain.ru"}
 +</code>
 +</WRAP>
 +
 +Последние 12 часов по получателю:
 +
 +<WRAP prewrap>
 +<code>
 +Get-MessageTrackingLog -Start (Get-Date).AddHours(-12) -ResultSize unlimited | where {[string]$_.recipients -like "username*"}
 +</code>
 +</WRAP>
 +
 +По отправителю и получателю за последние 24 часа:
 +
 +<WRAP prewrap>
 +<code>
 +Get-MessageTrackingLog -Start (Get-Date).AddHours(-24) -ResultSize unlimited | where {[string]$_.sender -like "sender@domain.ru" -and [string]$_.recipients -like "recepient@domain.ru"}
 +</code>
 +</WRAP>
 +
 +Конкретная дата по получателю:
 +
 +<WRAP prewrap>
 +<code>
 +Get-MessageTrackingLog -Start "06/21/2024 00:00:01" -End "06/22/2024 00:00:01" -ResultSize unlimited | where {[string]$_.recipients -like "user*"}
 +</code>
 +</WRAP>
 +
 +Вывести информацию с адресами клиентов для события RECEIVE из MessageTrackingLog
 +
 +<WRAP prewrap>
 +<code>
 +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
 +</code>
 +</WRAP>
 +
 +----
 +
 +=== Поиск сообщений через Search-Mailbox ===
 +
 +В некоторых случаях, к примеру, если штатная функция eDiscovery не работает, или не выполняеется командлет поиска по всей организации //New-MailboxSearch// (такое может случиться по разным причинам), нам может помочь циклический поиск по всем ящикам организации через search-mailbox.
 +
 +В данном примере мы выполним поиск по всем ящикам организации для //mailbox@mail.ru// как в качестве возможного отправителя и в качестве возможного получателя (для этого используется параметр //participants//), начиная с 2019-го года с полным уровнем логирования поиска (//LogLevel Full//) и отправим результаты в ящик Exchange //mailbox_results// - в папку //search_results_mailbox//.
 +
 +<WRAP prewrap>
 +<code>
 +$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
 +}
 +</code>
 +</WRAP>
 +
 +А в данном примере поищем упоминания слова //word// в теле письма или его теме.
 +
 +<WRAP prewrap>
 +<code>
 +$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
 +}
 +</code>
 +</WRAP>
 +
 +Запросить всю внешнюю почту для конкретного ящика "user@contoso.com", исключая внутренний домен contoso.com (пользователь, как видно, принадлежит данному домену), можно командлетом, в котором сначала отрабатывается условие для получения всех входящих, исключая выделенный домен, а затем фильтруется исходящие (домен также исключается). 
 +
 +<WRAP prewrap>
 +<code>
 +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"
 +</code>
 +</WRAP>
 +
 +Запросы на экспорт могут копиться. Если требуется очистить ВСЕ запросы - это можно сделать так:
 +
 +   get-mailboxexportrequest | Remove-MailboxExportRequest
 +{{tag>Exchange Microsoft Mail PowerShell}}