Для поиска и удаления писем в Exchange есть специальные командлеты.
Например Search-Mailbox.
В новых версиях Exchange, начиная с версии 2016, появились производительные способы поиска и удаления писем, средствами набора командлетов ComplianceSearch .
В этой же статье давайте остановимся именно на доступном во всех версиях командлете Search-Mailbox
EstimateResultOnly
Параметр EstimateResultOnly выводит найденные результаты на экран, если его не указать, то SearchQuery потребует указать альтернативный режим вывода результатов, например сохранить в другой ящик.
Найти и удалить
Если нужно удалить найденные письма, то используйте ключ -DeleteContent
Search-Mailbox -Identity mailbox -SearchQuery 'From:"username@domain.com"' -DeleteContent
Найти и скопировать в указанный ящик
Search-Mailbox -Identity mailbox -SearchQuery 'From:"username@domain.com"' -TargetMailbox "TargetMailbox" -TargetFolder "SearchResults"
Если указанная в ящике папка отсутствует, то она автоматически будет создана
Частые заголовки
Subject: «Тема письма»
Received:> 08/18/2019
Sent: 08/18/2019
From: «BillGeyts@microsoviet.com»
Attachment: «file.xlsx»
Isread:false
Поиск по дате
Что бы выполнить запрос по дате, нужно узнать правильный формат даты на конкретном сервере:
(Get-Culture).DateTimeFormat.ShortDatePattern
Используя полученный шаблон получаем текущую дату в актуальном формате:
(Get-Date -Format ((Get-culture).DateTimeFormat.ShortDatePattern))
Поиск писем по диапазону дат
Search-Mailbox -Identity mailbox -SearchQuery 'Received:08/18/2019..08/21/2019' -EstimateResultOnly
Также можно провести поиск в диапазоне конкретного времени
Получить текущее время в формате UTC
(Get-Date).ToUniversalTime()
Таким образом, фильтр для поиска писем, которые пришли в диапазоне между 15:45 и 16:30, будет выглядеть следующим образом:
Search-Mailbox -SearchQuery 'received:"12/21/2020 12:45..12/21/2020 13:00"' -EstimateResultOnly
Добавить исключение
Search-Mailbox -Identity username -SearchQuery 'Subject:"Тема письма" -"ключевая фраза"' -EstimateResultOnly
В данном примере фраза после минуса -«ключевая фраза» определяет исключение указанных слов, в рамках искомого заголовка.
Комбинации фильтров
Фильтры можно совмещать используя оператор «AND», в данном случае без дефиса, и в верхнем регистре
Search-Mailbox -Identity username -SearchQuery 'Subject:"RE: проект" AND "Received:08/20/2019"' -EstimateResultOnly
Еще пример комбинированного фильтра
Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery 'Subject:"Тема письма: Важное письмо!" AND body:"остаток, 50 руб." AND received:"12/25/2020 12:45..12/25/2020 13:00"' -EstimateResultOnly
Так же предлагаю посмотреть вам другие заметки по теме Exchange:
Просмотр пользователей динамической группы
Почему создается почтовый ящик с цифрой 2 в имени, и как это исправить
Подключение ранее отключенного ящика