Детектив или поиск потерянного письма

On 01/12/2012, in Exchange, by Алексей Волобуев

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

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

Итак запускаю  Exchange Managment Shell. Дальше совершаю следующие действия:

1) Я проверяю, а доходило ли письмо до сотрудника, или его могло удалить какое-нибудь транспортное правило, запускаю связку командлетов:

get-transportserver | Get-MessageTrackingLog  -Recipients sotrudnik@domain.local -Sender nachalnik@domain.local -Start "11/30/2012" -End "12/02/2012"|  sort -property timestamp  | ft timestamp,source, eventid, serverhostname, messagesubject

Связка командлетов делает следующее: берет список транспортных серверов, передает его командлету Get-MessageTrackingLog  с параметрами:

-Recipients — адрес получателя
-Sender — адрес отправителя
-Start -время начала поиска (формат ММ/ДД/ГГГГ)
-End -время окончания поиска (формат ММ/ДД/ГГГГ)

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

Получил следующий результат:

Вижу 2 события (колонка EventID) : Receive (Получено) и Deliver (доставлено в почтовый ящик). Отлично, значит теперь можно заняться поиском в почтовом ящике. Действие 2:

2)  С помощью командлета Search-Mailbox (его я использовал в одной из статей для поиска и удаления письма на сервере ) ищу письмо в ящике и вывожу результат на экран:

Search-Mailbox -identity sotrudnik -SearchQuery subject:"Указание" -EstimateResultOnly

Ага, видим в поле Succes: True. Значит письмо в ящике. Количество писем, согласно полю ResultItemsCount: 1. Продолжаю поиск. Действие 3:

3)  С помощью командлета Search-Mailbox ищу письмо в ящике, но теперь не вывожу результат на экран, а результат поиска отправляю себе на почтовый ящик в папку Poisk.

Search-Mailbox -identity sotrudnik -SearchQuery subject:"Указание" -TargetMailbox moiyaschik@domain.local -TargetFolder "Poisk" -LogOnly -LogLevel Full

После выполнения командлета в моем почтовом ящике в папке Poisk появилось письмо с темой «Search Results-12/1/2012 9:05:16 PM» и вложенным файлом Search Results.csv.zip . В этом файле результат поиск в почтовом ящике сотрудника.

4) Сохраняем вложение, разархивируем. Полученный CSV файл открываем в MS Excel. Для этого в MS Excel (у меня MS Office 2010) переходим на вкладку «Данные», на ленте выбираем «Из текста»

Указываем формат данных «С разделителями», на следующем шаге выбираем символ разделитель «Запятая». На всех остальных шагах все оставляем без изменений. В открывшемся MS Excel видим результат поиска:

Рассмотрим данный файл:

В столбце Folder указана папка, где сейчас находится письмо. Эта папка «Удаленные» . В столбце Read значение TRUE. Внимание: время в колонка Sent и Received указано по Гринвичу. Если кто-нибудь мне скажет, как сделать, чтобы сохранялось мое время буду рад.

Итак письмо было прочтено и удалено. Вывод — сотрудник пытался обмануть начальника. Cool

Tagged with:  

2 Responses to Детектив или поиск потерянного письма

  1. Дмитрий:

    Отличная статья. Но возникает вопрос. А как вы будете расследовать подобный инцидент, если письмо было удалено сотрудником и папка «Удаленные» им была очищена?

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

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