В Exchange 2010 SP1 сменился поиск и удаление писем в почтовых ящиках.
теперь для этого нужно обладать соответствующими правами.
Права назначаем для пользователя sidorov:
| 1 2 3 | New-RoleGroup -Name "Import Export Admins" -Roles "Mailbox Import Export" -Members sidorov New-ManagementRoleAssignment -Role "Support Diagnostics" –User sidorov New-ManagementRoleAssignment -Role "Mailbox Import Export" -User sidorov | 
Права на удаление (импорт и экспорт) появятся у пользователя sidorov.
Для того чтобы права заработали нужно перелогиниться в системе.
Изменился и сам запрос, теперь делается это так:
| 1 | Search-Mailbox -Identity "Иванов Петр" -SearchQuery "Subject:'новый прайс на ламинат' from:vladimirov@mail.ru sent:today" -DeleteContent -confirm:$false | 
Удаляет письмо
в ящике “Иванов Петр”
тема письма “новый прайс на ламинат”
отправитель “vladimirov@mail.ru”
послано “сегодня”
к слову сказать, у меня команда запустилась на сервере с ролью почтовых ящиков (MailBox).
при запуске в других местах ругалась
| 1 2 3 4 5 6 7 8 | [PS] C:\Windows\system32>Search-Mailbox -Identity "DeleteMailbox" -SearchQuery "Subject:новый прайс на ламинат" -DeleteContent Confirm Deleting content from mailboxes DeleteMailbox [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"): The property keyword isn't supported.     + CategoryInfo          : InvalidArgument: (:) [], ParserException     + FullyQualifiedErrorId : 34BC1ACA | 
Пройтись по всем ящикам:
| 1 | Get-Mailbox -resultsize unlimited | Search-Mailbox -SearchQuery "Subject:'новый прайс на ламинат' from:vladimirov@mail.ru sent:today" -DeleteContent -confirm:$false | 
или по одному серверу:
| 1 | Get-Mailbox –Server “*имя сервера*” –ResultSize unlimited | Search-Mailbox -SearchQuery "Subject:'новый прайс на ламинат' from:vladimirov@mail.ru sent:today" -DeleteContent -confirm:$false | 
поддерживаемый синтаксис запросов можно посмотреть тут http://technet.microsoft.com/ru-ru/library/bb232132.aspx
Вариант с подстановкой поиска (ищем и удаляем любые вхождения темы “*новый прайс на ламинат”):
| 1 | Search-Mailbox -Identity "Иванов Петр" -SearchQuery "Subject:'*новый прайс на ламинат' from:vladimirov@mail.ru sent:10.02.2010" -DeleteContent -confirm:$false | 
Можно искать по датам или диапазону дат.
Этот скрипт отработал:
| 1 | Get-Mailbox -resultsize unlimited | Search-Mailbox -SearchQuery "Subject:'*Выборка ОТЧЕТ' from:yaroslavv@firma.ru sent:01-08-2014" -DeleteContent -confirm:$false  | 
говорят что можно удалять и так (я не пробовал):
| 1 2 3 | Search-Mailbox -searchQuery "Received:< $(get-date).addDays(-2)" Search-Mailbox -SearchQuery Received:<$("09/18/2011") Search-Mailbox -SearchQuery “Received:> $(’10/01/2008') and Received:< $(’10/05/2010')” | 
ОШИБКИ:
| 1 2 3 | Ключевое слово property не поддерживается.     + CategoryInfo          : InvalidArgument: (:) [], ParserException     + FullyQualifiedErrorId : 738C299A | 
Вылечить не мог. Просто на одном из серверов с ролью MAILBOX этот скрипт отрабатывает, на остальных отказывается. Почему так – пока не разобрался.
“Ключевое слово property не поддерживается.” указывает на то что стоит русская версия Exchange. Соответственно ключи SearchQuery должны быть на русском. Например:
Search-Mailbox -SearchQuery Получено:<$("18/09/2011")
спасибо, не знал.
а вот такая ошибка из за чего может быть??
делал поиск по всем
Указание пути к целевому почтовому ящику или PST-файлу является обязательным.
+ CategoryInfo : InvalidArgument: (:) [], ArgumentException
+ FullyQualifiedErrorId : 71A42C6B
Invoke-Command : Не удалось записать входные данные, так как отсутствуют запущенные конвейеры