Командлет Search-Mailbox используется для поиска по почтовым ящикам и копирования результатов в указанный целевой почтовый ящик, удаления сообщений из исходного почтового ящика или обеих задач сразу.
Чтобы воспользоваться в полной мере коммандлетом Search-mailbox, нужно добавить свою учётную запись в две группы Exchange:
Add-RoleGroupMember -Identity «Discovery Management» -Member admin
Add-RoleGroupMember -Identity «Mailbox Import Export Group» -Member admin
Стоит отметить, что если у вас стоит русский Exchange, то параметры SearchQuery нужно указывать тоже на русском — получено, отправлено, откого, кому, тема и т.д., иначе можно получить ошибку «Ключевое слово property не поддерживается»
Чтобы просмотреть журнал сообщений в результатах поиска перед их удалением, выполните командлет Search-Mailbox с параметром LogOnly.
- Поиск по ящику d.adrianovskiy от «Бизнес-школа СКОЛКОВО», полученного с 18 по 19 ноября 2016, копирование найденных писем в ящик admin и папку test:
Search-mailbox -Identity «d.adrianovskiy» -SearchQuery {from:»Бизнес-школа СКОЛКОВО» Received: 18/11/2016..19/11/2016 } -TargetMailbox «admin» -LogLevel full -TargetFolder test
- Параметр EstimateResultOnly позволяет показать только результат поиска:
Search-mailbox -Identity «mailboxuser» -SearchQuery отправлено:»1/01/2017..27/01/2017″, получено:»1/01/2017..27/01/2017″ -EstimateResultOnly
- Поиск по всем ящикам:
Get-Mailbox -resultsize unlimited | Search-mailbox -SearchQuery ‘subject:»Mail delivery failed» …
- Поиск писем на конкретном сервере во всех ящиках:
Get-Mailbox –Server «Servername» –ResultSize unlimited | Search-Mailbox -SearchQuery …
- Поиск во всех почтовых ящиках компании с любыми типами вложений, содержащих слово Virus в названии. При этом сообщение журнала отправляется в почтовый ящик администратора.
Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery attachment:virus* -TargetMailbox admin -TargetFolder «SearchAndDeleteLog» -LogOnly -LogLevel Full
Ещё примеры поиска:
Search-mailbox -Identity «mailboxuser» -SearchQuery кому:»mail@mail.ru», отправлено:»1/13/2017..8/11/2016″ -TargetMailbox «mail» -TargetFolder «Archive» -LogLevel Full
Search-mailbox -Identity «mailboxuser» -SearchQuery получено:»7/2/2017..9/2/2017″, тема:»RE: Tema» -TargetMailbox «mailbox» -TargetFolder «Archive» -LogLevel Full
Search-mailbox -Identity «user» -SearchQuery получено:»3/02/2017″, откого:»vasya@yandex.ru» -TargetMailbox «admin» -TargetFolder «Archive» -LogLevel Full
Поиск и удаление сообщений в Exchange из почтовых ящиков.
При использовании командлета Search-Mailbox с параметром DeleteContent сообщения окончательно удаляются из исходного почтового ящика. Перед окончательным удалением сообщений рекомендуется использовать параметр LogOnly для создания журнала сообщений, найденных в результатах поиска, или скопировать эти сообщения в другой почтовый ящик перед их удалением из исходного почтового ящика.
- Поиск в ящике v.yurov по теме письма и удаление найденных писем:
Search-mailbox -Identity «v.yurov» -SearchQuery ‘subject:»Mail delivery failed»‘ -DeleteContent -confirm:$false
- В этом примере во всех почтовых ящиках организации выполняется поиск сообщений, содержащих строчку «User Audit» в теме, после чего журнал сообщений попадает администратору в ящик:
- Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery ‘Subject:»User Audit»‘ -TargetMailbox admin -TargetFolder «SearchLog» -LogOnly -LogLevel Full
- Поиск во всех ящиках компании писем с адреса test@test.ru и удаление найденных писем без подтверждения:
Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery ‘from:test@test.ru’ -DeleteContent -confirm:$false