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

Показаны сообщения с ярлыком Exchange Server 2010. Показать все сообщения
Показаны сообщения с ярлыком Exchange Server 2010. Показать все сообщения

среда, 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
}

понедельник, 28 апреля 2014 г.

PowerShell. MS Exchange вывести список сообщений почтового ящика

Настрой весенний, решил черкануть пару строк ))
Данный пост посвящен частому действию админа exchang'a, выводу списка сообщений определенного пользователя за определенный период.
Итак...
Запускаем Exchange Management Shell. Скрипт следующего содержания:
Get-TransportServer | Get-MessageTrackingLog -ResultSize unlimited -Start $startdate -end $enddate -EventID "RECEIVE" -Recipients "v.pupkin@mail.ru"

Смысл...
 Get-TransportServer - получим список наших exchange серверов, Get-MessageTrackingLog -берем лог сообщений, ну и по параметрам:
-ResultSize unlimited - размер вывода бесконечно большой
-Start $startdate -end $enddate   - период, переменные $startdate, $enddate соответсвенно начало и конец, присваивание значений выглядит так $startdate = get-date 28.04.2014, если со временем то так $enddate = get-date "28.04.2014 12:00:05"
-EventID "RECEIVE" - id события у сообщения
-Recipients "v.pupkin@mail.ru" - искомый ящик


четверг, 30 января 2014 г.

Удаление сообщений из очереди Exchange 2010

Из-за разного рода проблем случается так, что письма "зависают" в очереди. В более ранних редакциях Exchange, письма из очереди удалялись достаточно тривиально... Но в Exchange 2010 присутствует замечательный инструмент "Exchange Management Shell", воспользуемся им:

Get-Message -Queue "srv01hubp\Submission" -ResultSize unlimited | where{$_.Subject -eq "Subject" } | Remove-Message -WithNDR $False

Разберем командлеты:
 
Get-Message -Queue "srv01hubp\Submission" -ResultSize unlimited
 
С сервера srv01hubp очереди Submission получаем сообщения, -ResultSize unlimited  размер неограничен;
 
where{$_.Subject -eq "Subject" }
 
Выберем только сообщения с заголовком "Subject";
 
Remove-Message -WithNDR $False
 
Удалим все выбранные сообщения, без предупреждения.