Both sides previous revisionPrevious revisionNext revision | Previous revision |
отслеживание_и_поиск_сообщений [2024/12/27 12:38] – jp | отслеживание_и_поиск_сообщений [2025/04/23 09:52] (current) – jp |
---|
<code> | <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 | 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 |
| |
| ---- |
| |
| === Запрос статистической информации === |
| |
| Пример выгрузки информации о количестве писем в Inbox и вложенных подпапках: |
| |
| Get-MailboxFolderStatistics -Identity "mailbox_name" -FolderScope Inbox | select Identity,ItemsInFolder |
| |
| Таким командлетом можно выгрузить в текстовый файл количество писем в папке Inbox для всех ящиков, существующих в определенном OU: |
| |
| <WRAP prewrap> |
| <code> |
| Get-Mailbox -OrganizationalUnit "OU=unit,DC=domain,DC=domain,DC=domain" | Get-MailboxFolderStatistics -FolderScope Inbox | select Identity,ItemsInFolder | ft -AutoSize >> c:\mailstats.txt |
</code> | </code> |
</WRAP> | </WRAP> |
{{tag>Exchange Microsoft Mail PowerShell}} | {{tag>Exchange Microsoft Mail PowerShell}} |