Хождение внешней почты

On 16/01/2014, in Exchange, PowerShell, by Алексей Волобуев

Доброго времени суток.

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

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

EMC -> Organization Configuration -> Hub Transport -> вкладка Send Connectors

Коннектор отправки Exchange

Коннектор отправки Exchange

У меня коннектор называется «Internet» , он используется для отправки писем для внешних доменов. Т.е. выбирать из логов будем по параметру ConnectorID равный ‘Internet’.

В логах меня интересует событие «SEND». Т.к. ищем только, что сотрудник отправил, то используем параметр -Sender .

Итоговый скрипт в PowerShell следующий:

get-messagetrackinglog -ResultSize unlimited -EventID «SEND» -Sender «user@domain.com» | Where-Object { $_.ConnectorID -eq ‘Internet’ }

Чтобы посмотреть логи на всех серверах добавим командлет get-transportserver

get-transportserver | get-messagetrackinglog -ResultSize unlimited -EventID «SEND» -Sender «user@domain.com» | Where-Object { $_.ConnectorID -eq ‘Internet’ }

Можно теперь выгрузить все в файл.

get-transportserver | get-messagetrackinglog -ResultSize unlimited -EventID «SEND» -Sender «user@domain.com» | Where-Object { $_.ConnectorID -eq ‘Internet’ } | Export-Csv c:\export.csv -encoding UTF8

Если в поле Кому письма много получателей, то в файле в поле «Recipients» будут написаны не получатели, а фраза «System.String[]». Чтобы это исправить, надо модернизировать запрос, добавив переменную {$_.recipients} . Добавим еще в следующие столбцы время TimeStamp, отправителя Sender, тему MessageSubject и размер TotalBytes.

Итоговый запрос будет следующий:

get-transportserver | get-messagetrackinglog -ResultSize unlimited -EventID «SEND» -Sender «user@domain.com» | Where-Object { $_.ConnectorID -eq ‘Internet’ } | select-object TimeStamp, Sender, {$_.recipients}, MessageSubject,TotalBytes  | Export-Csv c:\export.csv -encoding UTF8

Tagged with:  

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

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