Exchange 2010 SP1 — поиск и удаление писем в почтовых ящиках

В Exchange 2010 SP1 сменился поиск и удаление писем в почтовых ящиках.
теперь для этого нужно обладать соответствующими правами.
Права назначаем для пользователя sidorov:

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.
Для того чтобы права заработали нужно перелогиниться в системе.

Изменился и сам запрос, теперь делается это так:

Search-Mailbox -Identity "Иванов Петр" -SearchQuery "Subject:'новый прайс на ламинат' from:vladimirov@mail.ru sent:today" -DeleteContent -confirm:$false

Удаляет письмо
в ящике «Иванов Петр»
тема письма «новый прайс на ламинат»
отправитель «vladimirov@mail.ru»
послано «сегодня»

к слову сказать, у меня команда запустилась на сервере с ролью почтовых ящиков (MailBox).
при запуске в других местах ругалась

[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

Пройтись по всем ящикам:

Get-Mailbox -resultsize unlimited | Search-Mailbox -SearchQuery "Subject:'новый прайс на ламинат' from:vladimirov@mail.ru sent:today" -DeleteContent -confirm:$false

или по одному серверу:

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

Вариант с подстановкой поиска (ищем и удаляем любые вхождения темы «*новый прайс на ламинат»):

Search-Mailbox -Identity "Иванов Петр" -SearchQuery "Subject:'*новый прайс на ламинат' from:vladimirov@mail.ru sent:10.02.2010" -DeleteContent -confirm:$false


Можно искать по датам или диапазону дат.
Этот скрипт отработал:

Get-Mailbox -resultsize unlimited | Search-Mailbox -SearchQuery "Subject:'*Выборка ОТЧЕТ' from:yaroslavv@firma.ru sent:01-08-2014" -DeleteContent -confirm:$false 

говорят что можно удалять и так (я не пробовал):

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')”

ОШИБКИ:

Ключевое слово property не поддерживается.
    + CategoryInfo          : InvalidArgument: (:) [], ParserException
    + FullyQualifiedErrorId : 738C299A

Вылечить не мог. Просто на одном из серверов с ролью MAILBOX этот скрипт отрабатывает, на остальных отказывается. Почему так - пока не разобрался.

3 комментария

  1. «Ключевое слово property не поддерживается.» указывает на то что стоит русская версия Exchange. Соответственно ключи SearchQuery должны быть на русском. Например:
    Search-Mailbox -SearchQuery Получено:<$("18/09/2011")

  2. а вот такая ошибка из за чего может быть??

    делал поиск по всем

    Указание пути к целевому почтовому ящику или PST-файлу является обязательным.
    + CategoryInfo : InvalidArgument: (:) [], ArgumentException
    + FullyQualifiedErrorId : 71A42C6B

    Invoke-Command : Не удалось записать входные данные, так как отсутствуют запущенные конвейеры

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *