none
Поиск и удаление писем с символом @ RRS feed

  • Вопрос

  • Всем добрый день.

    Имеется Exchange 2010 SP1. Необходимо найти и удалить письмо, в котором присутствуют "@domain.com". Поиск по всему сообщению. Задаю запрос 

    Get-Mailbox -ResultSize Unlimited | Search-Mailbox -SearchQuery  "@domain.com'" -DeleteContent

    удаляются сообщения и с символом @ и те, в которых есть только domain.com без символа @.  

    Подскажите, пожалуйста, решение.

    2 декабря 2015 г. 12:55

Ответы

  • Здравстуйте!

    Попробуйте так:

    $OldDate = ((get-date).AddDays(-4)).tostring()

    Найдите письма  От xx@xx.ru старше чем 4 дня.

    Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery "'От:xxx@xxx.ru'  отправлено: < $OldDate" -LogLevel Full -LogOnly -TargetMailbox 'ящик администратора' -TargetFolder 'папка, куда должны приходить отчеты'
    Если командлет отработал правильно, тогда можете удалять.
    Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery "'От:xxx@xxx.ru' отправлено: < $OldDate" -DeleteContent -Confirm:$false -Force
    

    9 декабря 2015 г. 8:22
  • Спасибо за ответ.

    В итоге по Вашему примеру получилось следующим образом:

    $OldDate = ((get-date).AddDays(-4)).tostring() Get-Mailbox -Resultsize Unlimited | Search-Mailbox -SearchQuery "Откого:@xx.ru or Откого:@xx.com or Откого:@xx.org Отправлено:<$OldDate" -LogLevel Full -LogOnly -TargetMailbox 'Admin' -TargetFolder 'SearchResult'

    Поиск происходит и в ящик админа приходит результат, по результатам все верно, то есть как надо. После этого:

    Get-Mailbox -Resultsize Unlimited | Search-Mailbox -SearchQuery "Откого:@xx.ru or Откого:@xx.com or Откого:@xx.org  Отправлено:<$OldDate"  -DeleteContent -Confirm:$false -Force

    Удаляются письма по заданной дате и от заданных в скрипте отправителей.

    В Вашем примере параметр "От" изменил на "Откого". Также была ошибка "Ключевое слово property не поддерживается" - это скорее всего из-за кавычек, я пробовал оба параметра Откого и Отправитель в разные кавычки и одинарные и двойные, во всех вариантах была ошибка "Ключевое слово property не поддерживается". Сработало после того, как я убрал одиночные кавычки.

    Буду тестировать еще.

    9 декабря 2015 г. 9:48

Все ответы

  • Нет видимо решения?

    В этом случае немного изменю вопрос и постановку задачи, может есть у кого идеи или сталкивались с подобным. Необходимо удалить письма от адресатов определенных доменов и письма, отправленные получателям этих доменов, но только до определенной даты, например, удалять все письма и оставлять только за последние 4 дня. По такому сценарию:

    $Days = "-4"
    $CurrentDate = Get-Date
    $OldDate = $CurrentDate.AddDays($Days).tostring()
    Get-Mailbox -ResultSize Unlimited | Search-Mailbox -SearchQuery "Отправлено: < $OldDate", "Кому:@domain.com or Кому:@domain.ru or Кому:@domain.org"  -DeleteContent -Confirm:$false -Force

    удаляются все письма, и старше 4-х дней также. Несколько раз в тестовом режиме по указанному выше скрипту письма действительно удалялись только до определенной даты (хотя сейчас в этом уже не уверен, так как все последующие тесты показывали обратное).

    Exchange 2010 SP1, Windows Server 2008 R2 - локализация почтового сервера и ОС русские.

    9 декабря 2015 г. 7:27
  • Здравстуйте!

    Попробуйте так:

    $OldDate = ((get-date).AddDays(-4)).tostring()

    Найдите письма  От xx@xx.ru старше чем 4 дня.

    Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery "'От:xxx@xxx.ru'  отправлено: < $OldDate" -LogLevel Full -LogOnly -TargetMailbox 'ящик администратора' -TargetFolder 'папка, куда должны приходить отчеты'
    Если командлет отработал правильно, тогда можете удалять.
    Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery "'От:xxx@xxx.ru' отправлено: < $OldDate" -DeleteContent -Confirm:$false -Force
    

    9 декабря 2015 г. 8:22
  • Спасибо за ответ.

    В итоге по Вашему примеру получилось следующим образом:

    $OldDate = ((get-date).AddDays(-4)).tostring() Get-Mailbox -Resultsize Unlimited | Search-Mailbox -SearchQuery "Откого:@xx.ru or Откого:@xx.com or Откого:@xx.org Отправлено:<$OldDate" -LogLevel Full -LogOnly -TargetMailbox 'Admin' -TargetFolder 'SearchResult'

    Поиск происходит и в ящик админа приходит результат, по результатам все верно, то есть как надо. После этого:

    Get-Mailbox -Resultsize Unlimited | Search-Mailbox -SearchQuery "Откого:@xx.ru or Откого:@xx.com or Откого:@xx.org  Отправлено:<$OldDate"  -DeleteContent -Confirm:$false -Force

    Удаляются письма по заданной дате и от заданных в скрипте отправителей.

    В Вашем примере параметр "От" изменил на "Откого". Также была ошибка "Ключевое слово property не поддерживается" - это скорее всего из-за кавычек, я пробовал оба параметра Откого и Отправитель в разные кавычки и одинарные и двойные, во всех вариантах была ошибка "Ключевое слово property не поддерживается". Сработало после того, как я убрал одиночные кавычки.

    Буду тестировать еще.

    9 декабря 2015 г. 9:48
  • Да, могут быть нюансы.

    У меня английская локализация и использую from; to, received; sent


    9 декабря 2015 г. 10:25