Выгрузка почтового ящика из Exchange в PST-файл

Опубликовано: 30.08.2013
Автор: Виталий Бочкарев
Поддержать автора статьи по этой ссылке

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

Расследовав более подробно этот случай я выяснил, что пользователи на самом деле - это один и тот же человек, только месяц назад он работал как внешний консультант, а теперь его взяли в штат компании. Этому человеку создали полноценную учетную запись сотрудника компании, а старую с ограничениями удалили, удалив и почту.

Решение лежало на поверхности - восстановить удаленный почтовый ящик. Как известно в почтовой системе MS Exchange 2010 ящики не удаляются сразу, а хранятся некоторое время в режиме Disconnected (более подробно можно прочитать тут). То есть я нашел удаленный почтовый ящик, который висел в разделе Disconnected mailbox. Прицепил этот удаленный ящик к тестовой учетной записи, и попробовал выгрузить данные в PST-файл, но сервер выдавал ошибку, что почтового ящика не существует. Оказалось, что это из-за рассинхронизации (запаздывания) данных Active Directory и Exchange (подробнее об этом написано в этой статье).

Итак, чтобы выгрузить почтовый ящик потребовалось:

0. Подготовить тестовую учетную запись и запустить консоль Exchange Management Shell, выполнив в ней команду

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010

1. Обновить информацию об учетных записях в хранилище Exchange.

Clean-MailboxDatabase

2. Прицепить почтовый ящик к тестовой учетной записи.

Connect-Mailbox -Identity "Deleted User" -Database Database01 -User TestUser

3. Еще раз обновить информацию об учетных записях в хранилище Exchange.

Clean-MailboxDatabase

4. Выгрузить почту в PST-файл (восстанавливать старую почту напрямую в почтовый ящик пользователя я не решился).

New-Mailboxexportrequest -Mailbox TestUser -filepath "\\MyComputer\C$\TestUser.PST"

5. Проверить состояние процесса выгрузки почтового ящика.

Get-MailboxExportRequest -Name MailboxExport | fl

6. Удалить завершенные процессы выгрузок ящиков.

Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest

7. Отдать пользователю PST-файл со старой почтой и удалить почтовый ящик у тестовой учетной записи.

Remove-Mailbox -Identity TestUser