Как удалить сообщения по определенным критериям в нескольких почтовых ящиках в Exchange Server 2010?

Как удалить сообщения по определенным критериям в нескольких почтовых ящиках в Exchange Server 2010?

В Exchange Server 2007 эту операцию можно было выполнить двумя командами. Например, пользователю pnagaev нужно удалить в почтовом ящике пользователя Elena сообщение, содержащее слова «Odnoklassniki.ru»:

Add-MailboxPermission -Identity Elena -User pnagaev -AccessRights FullAccess
Get-Mailbox -Identity Elena | Export-Mailbox -SubjectKeywords "Odnoklassniki.ru" -DeleteContent

После выполнения нужно не забыть забрать права у пользователя pnagaev.

В общем-то это не очень хороший способ, т.к. к содержимому ящиков получает доступ третье лицо — администратор, что всегда осуждалось в среде специалистов по Exchange Server. Делай что хочешь, но в почтовый ящик пользователя залезать нельзя ни под каким предлогом.

В Exchange Server 2010 SP1  механизм доступа был пересмотрен, вышеприведенная команда Export-Mailbox не поддерживается.
Команда New-MailboxExportRequest не поддерживает параметр «-DeleteContents»
Для того, чтобы найти и удалить сообщения в Exchange Server 2010 SP1, необходимо назначить  пользователю следующие роли.

New-ManagementRoleAssignment  -Role "Support Diagnostics"   –User pnagaev
New-ManagementRoleAssignment  -Role "Mailbox Import Export" -User pnagaev

Вышеприведенные команды предоставят пользователю только необходимые права для удаления сообщений, но доступа к содержимому почтового ящика у пользователя не будет.

Для поиска и удаления сообщений служит следующая команда


Search-Mailbox -Identity Elena -SearchQuery 'subject:"Odnoklassniki.ru"' –DeleteContent 

Эта команда может быть запущена для всех почтовых ящиков


Get-Mailbox –Server “*имя сервера*” –ResultSize unlimited |
 Search-Mailbox -SearchQuery 'subject:"Odnoklassniki.ru"' –DeleteContent 

Как мы видим запрос для поиска состоит из специальных слов, например «subject:», «from:». Остальные слова можно посмотреть по ссылке Advanced Query Syntax

Эту методологию можно использовать для удаления:

  1. Спама
  2. Сообщения от вирусов
  3. Системных сообщений
  4. Запрещенных к посещению сайтов, например Odnoklassniki.ru

В масштабах предприятия эти меры позволят высвободить немного места.

Статьи по теме:

Understanding Exchange Search
MSEXCHANGETEAM:Removing specific messages from your Exchange Server

 

 

Связанные записи:


, , ,

  • http://msexchangeexpert.ru Oleg Krylov

    Паша, все клёво, но с одноклассниками борятся другими методами 🙂 Например вот так:

    New-TransportRule -Name «FuckingClassmates» -FromScope NotInOrganisation -SentTo «OfficePlankton» -SubjectOrBodyContains «Odnoklassniki.ru» -RejectMessage
    Лучше, чем тащить на сервер тонны спама и потом героически его выковыривать 🙂  

  • Pavel Nagaev

    Про одноклассников согласен. Я решил тут свой почтовый ящик проанализировать и нашел, что 18 мегабайт писем скопилось от одного сервера с информацией, которая устаревает после прочтения.

    Обычно я сразу такое удаляю, видимо не всегда.

    Так вот, именно от всяких сабскрайб.ру, да внутренних рассылок это предназначено.

    В масштабах предприятия это могут быть приличные цифры.

  • http://msexchangeexpert.ru Oleg Krylov

    А для этого Managed Folders+MailboxRule+Retention Tags. Как-то так 🙂

  • Pavel Nagaev

    Если командлет Search-mailbox недоступен, вы получаете такое сообщение:

    The term ‘search-mailbox’ is not recognized as the name of a cmdlet, function, script file, or operable program

     то нужно добавить учетной записи роль Discovery Management в RBAC.

  • Anton L.

    Павел, давно вам хотел сказать, что вы преувеличиваете проблему «залезать или нет в ящик пользователя».
    На самом деле все очень просто:
    1. Оборудование принадлежит работодателю, они вправе делать с ним все, что угодно, получать любую информацию с него.
    2. Сотрудник не вправе заниматься на работе личными делами, в том числе использовать рабочую почту для личной переписки.
    О каких тогда моральных/этических принципах может идти речь?

  • Oleg Krylov

    Антон, вы не то чтобы не совсем правы, вы скорее совсем неправы 🙂
    Правоприменительная практика Европейского суда по ст.8 Европейской Конвенции о защите прав человека и основных свобод, которая легла в основу российского законодательства в данной области (и последнее не должно ей противоречить), гласит, что тайна переписки распространяется как на частные, так и на служебные письма. Об этом же говорит и Конституционный суд в своем определении. Перлюстрация служебной переписки законна только на основании решения суда.
    Тайну переписки также гарантирует п.1 ст.63 Федерального закона от 07.07.2003 №126-ФЗ «О связи», конкретизируя, что данная гарантия распространяется в том числе и на сообщения, передаваемые по сетям электросвязи и сетям почтовой связи.
    Этот же пункт уточняет, что ограничение права на тайну переписки допускается только в случаях, предусмотренных федеральными законами. Ограничения такого рода установлены в следующих случаях:

    введение военного положения (п.15 ст.7 Федерального конституционного закона от 30.01.2002 №1-ФКЗ «О военном положении»);
    контртеррористическая операция (п.4 ст.11 Федерального закона от 06.03.2006 №35-ФЗ «О противодействии терроризму»);
    контрразведывательные мероприятия (ст.9 Федерального закона от 03.04.1995 №40-ФЗ «О Федеральной службе безопасности»);
    расследование уголовного дела (ст.13 Уголовно-процессуального кодекса РФ);
    оперативно-розыскная деятельность (ст.6 Федерального закона от 12.08.1995 №144-ФЗ «Об оперативно-розыскной деятельности»).

    Как видно, необходимость соблюдения режима коммерческой тайны и выявление нелояльных компании сотрудников не относятся к случаю, когда гарантия тайны переписки может быть нарушена.
    Соответственно единственное, что может ограничить право на тайну переписки, – судебное решение.

  • Pavel Nagaev

    Уважаемый Антон, логика не совсем правильная. Мы живем в правовом государстве на основании Российских законов и это первично. Все остальные законы и правила, договоры не могут их нарушать.

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

    Моя задача и цель вот какая. Я когда ездил в штаты на конференцию Exchange Connections в 2003 году, то поразился, насколько буржуи к этому серьезно относятся. 

    Именно после этого я проповедую эту позицию, чтобы начинающие администраторы про это знали и соблюдали, тогда при переходе в серьезные компании у них даже мысли не возникнет лезть в ящик пользователя. А там это очень важно.
    Даже ИТ менеджер не может дать команду, только служба безопасности компании  , это их дела. Причем задача админа дать доступ сотруднику СБ, а не себе. А там уж что хотят, то и делают.
     

  • Anton L.

    Павел, Олег, спасибо большое вам за объяснение. Буду знать.
    Вопрос по статье: Есть ли возможность через консоль Exchange найти сообщения во всех ящиках пользователей более n мегабайт и удалить?
    -SearchQuery «Size:>8MB»
    The property keyword isn’t supported.
        + CategoryInfo          : InvalidArgument: (:) [], ParserException
        + FullyQualifiedErrorId : 37C2FA21

  • Oleg Krylov

    Не очень уверен, но попробуйте -SearchQuery ‘kind:everything size:>8MB’

  • Oleg Krylov

    Нет, не получится. Exchange Search ограниченый вариант AQS. Вот тут в табличке свойства, которые можно указать в SearchQuery http://technet.microsoft.com/en-us/library/bb232132.aspx#AQS.

  • Anton L.

    Олег, результат отрицательный. 🙁

  • Alexander

    Спасибо за статью, Павел!
    Но у меня возникает вот что:
    [PS] C:\Windows\system32>Search-Mailbox -Identity ‘diablo’ -SearchQuery ‘subjec
    t:»Some subj»‘ -DeleteContent
    A positional parameter cannot be found that accepts argument ‘-DeleteContent’.
        + CategoryInfo          : InvalidArgument: (:) [Search-Mailbox], Parameter
       BindingException
        + FullyQualifiedErrorId : PositionalParameterNotFound,Search-Mailbox

  • Alexander

    Все, разобрался. Но за статью действительно спасибо, в частности за упоминание различий Exchange 2010 от Exchange 2010 SP1 =)