В 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 : Не удалось записать входные данные, так как отсутствуют запущенные конвейеры