Иногда возникает необходимость найти письмо в Exchange по ключевому слову, но неизвестно, в каких именно почтовых ящиках оно может находиться. В таких случаях можно выполнить поиск сразу во всех почтовых ящиках. В этом руководстве мы покажем, как это сделать, а также как настроить права администратора для выполнения поиска.
1. Назначение ролей для поиска писем в Exchange
Чтобы получить доступ к глобальному поиску писем, администратору необходимо назначить роли «Legal Hold» и «Mailbox Search», которые по умолчанию не назначаются. Без этих ролей команда New-MailboxSearch либо будет недоступна, либо будет ограничена в параметрах.
- Добавить роли в существующую группу ролей (например, «Organization Management»).
Этот способ добавляет разрешения для поиска в уже существующую административную группу.
- Создать новую группу ролей и добавить роли туда
Является более предпочтительным. Это позволяет точнее контролировать, кто может выполнять поиск в почтовых ящиках, не влияя на остальные административные права.

Как проверить требуемые роли для командлетов
Чтобы узнать, какие роли требуются для выполнения определённых командлетов, используйте команду
Get-ManagementRoleEntry -Identity *\New-MailboxSearch

2. Поиск писем по ключевому слову
После назначения прав и повторного входа в систему, администратор может выполнить поиск писем по ключевому слову во всех почтовых ящиках. Ниже приведен пример команд, которые можно использовать для поиска:
$keyword = "КлючевоеСлово"
$source = get-mailbox -ResultSize unlimited | where-object {$_.name -ne "[YourUser]"}
New-MailboxSearch -Name "SNSearch" -SourceMailboxes $source -SearchQuery "$keyword*" -TargetMailbox "YourUser@yourorg.com" -IncludeUnsearchableItems -LogLevel Full
Start-MailboxSearch SNSearch
Примечание: Замените [YourUser] и YourUser@yourorg.com на имя пользователя и адрес администратора, куда будут отправлены результаты поиска.
3. Сохранение и удаление результатов поиска
По завершении поиска в почте администратора появится папка с именем, указанным в New-MailboxSearch. В этой папке будут собраны все найденные письма (если что-то найдено).

Рекомендуется перенести нужные письма в другую папку и удалить поиск, чтобы избежать конфликтов имен при будущем использовании команд.
Remove-MailboxSearch SNSearch
4. Настройка фильтров для поиска
Процесс поиска писем может занять много времени и потребовать значительных ресурсов. Чтобы сузить круг поиска и сэкономить ресурсы, можно добавить фильтры, например, по теме или телу письма. Используйте следующие команды для более точного поиска:
New-MailboxSearch -Name "SNSearch" -SourceMailboxes $source -SearchQuery "Subject:$keyword* OR Body:$keyword*" -TargetMailbox "YourUser@yourorg.com" -IncludeUnsearchableItems -LogLevel Full
5. Проверка статуса поиска
Чтобы увидеть статус выполнения задачи поиска, выполните следующую команду:
Get-MailboxSearch SNSearch | ft Name,CreatedBy,Status,PercentComplete,ResultNumber,ResultSize
6. Ограничения поиска по ключевым словам
Обратите внимание, что в Exchange по умолчанию поиск ведется по слову целиком. Поддерживается поиск с использованием символа подстановки (*), т.е. wildcard символа, но только в конце ключевого слова. В начале слова данный символ не работает. Например, поиск по ключевому слову «Вася» найдет совпадения, такие как:
- «Шёл Вася прогуляться»
- «Этот ВасяПупкин…»
Но такие варианты, как «ВниманиеВася снова сломал почту!», будут пропущены.
Заключение
Поиск писем по ключевым словам в Exchange полезен для нахождения определенной информации в почтовых ящиках всей организации. Однако этот процесс может требовать значительных ресурсов, поэтому важно правильно настроить фильтры и права доступа.
