Общее·количество·просмотров·страницы

среда, 3 декабря 2014 г.

PowerShell. Exchange удаление писем

Как удалять письма.

Кошерно с минимальной нагрузкой на сервер и минимальными рисками делаем так.
Если в теме письма RE: FE: HA: и пр. с двоеточием вместо него ставим либо *: либо *

  • Ищем письмо в логах

МЕНЯЕМ ПАРАМЕТРЫ:
$startdate
$enddate
-Sender
MessageSubject

В консоли пишем.

$startdate = get-date "03.12.2014 00:40:00" 
$enddate = get-date "03.12.2014 22:57:59" 
Get-TransportServer | Get-MessageTrackingLog -ResultSize unlimited -Start $startdate -End $enddate -eventid "RECEIVE" -Sender "y.nemo@test.ru" | where{$_.MessageSubject -like "*Заявка на подключение*"}
Нашли искомое письмо

  • Проверим что поисковый запрос работает.

МЕНЯЕМ ПАРАМЕТРЫ:
См. выше и
Subject:
From:
sent:

В консоль вставляем, НЕ ЗАБЫВАЕМ ПРО ПАРАМЕТРЫ:

$recipients = Get-TransportServer | Get-MessageTrackingLog -ResultSize unlimited -Start $startdate -End $enddate -eventid "RECEIVE" -Sender "y.nemo@test.ru" | where{$_.MessageSubject -like "*Заявка на подключение*"}
$array
foreach($item in $recipients){
$array += $item.Recipients
}
$array = $array | select -Unique
foreach($item in $array){
Get-Mailbox -Identity $item | Search-Mailbox -SearchQuery 'Subject:"*Заявка на подключение*" from:y.nemo@test.ru sent:03/12/2014' -EstimateResultOnly
}

Если поиск удачен, то значение ResultItemsCount > 0

  • Удаление писем

Меняем параметр –EstimateResultOnly на –DeleteContent.
foreach($item in $array){
Get-Mailbox -Identity $item | Search-Mailbox -SearchQuery 'Subject:"*Заявка на подключение*" from:y.nemo@test.ru sent:03/12/2014' -DeleteContent -Confirm:$false
}

Комментариев нет:

Отправить комментарий