В Exchange 2003 и более ранних версиях существовала утилита под названием Exmerge. С помощью Exmerge вы могли импортировать и экспортировать почтовые ящики в .PST файлы. Эта утилита была полезна для миграций внутри леса, или для правоохранительных органов. В последнем случае юридический отдел мог запросить .PST файл определенного почтового ящика при проведении расследования.
В Exchange Server 2007 утилита Exmerge не существует, а ее функции заменены двумя командами Exchange Management Shell:
Export-Mailbox
Import-Mailbox
П умолчанию, администраторы домена не могут использовать эти команды, так как есть явное ограничение группы администраторов домена из соображений безопасности. Лучшим способом воспользоваться Import-Mailbox и Export-Mailbox – это не изменять параметры группы администраторов домена, а создать отдельного пользователя с достаточными разрешениями для экспортирования и импортирования данных.
Первым шагом будет создание нового пользователя в Active Directory, назовем его ExAdmin. Этот пользователь должен быть членом группы пользователей домена (Domain Users), но НЕ должен входить в группу администраторов домена (Domain Admins). Можно создать почтовый ящик для этого пользователя, но это вовсе необязательно.
Вторым шагом будет предоставление пользователю ExAdmin разрешений на уровне организации Exchange Organization. Минимальные требуемые разрешения – это разрешения, идущие с ролью 'Exchange Server Administrator Role'. В этом случае ExAdmin пользователь сможет манипулировать только тем сервером Exchange, для которого ему предоставлены разрешения. Обратите внимание, что ExAdmin пользователь должен быть участником группы безопасности локальных администраторов (Local Administrators Security Group) на определенном сервере Exchange.
На сервере Exchange Server 2007 Server откройте консоль Exchange Management Console и выберите конфигурацию организации (Organization Configuration). В панели действий (Actions Pane) выберите опцию добавления администратора (Add Exchange Administrator). В мастере выберите ExAdmin пользователя, выберите 'Роль администратора сервера Exchange (Exchange Server Administrator Role)' и добавьте необходимый Exchange сервер:
Рисунок 1: Добавление ExAdmin пользователя в качестве администратора сервера Exchange
Нажмите Добавить (Add), а затем Готово (Finish), чтобы предоставить пользователю ExAdmin эти разрешения.
Рисунок 2: Предупреждение о том, что ExAdmin пользователь также должен входить в группу локальных администраторов
Чтобы предоставить пользователю ExAdmin доступ с правом чтения ко всем почтовым ящикам для экспортирования, пользователь ExAdmin должен иметь 'Receive As' разрешения на базе данных, в которой хранится определенный почтовый ящик. Таким образом, ExAdmin пользователь сможет получить доступ ко всем почтовым ящикам в этой базе данных, но не сможет отправлять сообщения с ящикя.
Чтобы предоставить ExAdmin пользователю 'Receive As' разрешения для стандартной базы данных Exchange Server 2007 Mailbox Database, введите следующую команду в Exchange Management Shell:
Add-ADPermission 'Identity 'First Storage Group\Mailbox Database' 'UserExAdmin 'ExtendedRights Receive-As
Измените имя базы данных на имя базы данных вашего сервера Exchange.
Если вы хотите предоставить это разрешение пользователю ExAdmin для всех баз данных почтовых ящиков, введите следующую команду в Exchange Management Shell:
Get-MailboxDatabase | Add-ADPermission -User ExAdmin -ExtendedRightsReceive-As
Следует помнить, что разрешения недоступны, пока информационное хранилище (Information Store) не обновит свой кэш, а это может занять до 2 часов. Чтобы ускорить процесс, можно перезапустить службу Information Store, но это будет означать, что все ваши базы данных будут демонтированы и станут недоступными для конечных пользователей.
Export-Mailbox
Теперь можно перейти на рабочую станцию управления с установленными на нее инструментами Exchange Management Tools (32-bits!) и Outlook. Войдите на сервер управления, используя учетные данные пользователя ExAdmin, откройте Exchange Management Shell и введите следующую команду:
Export-Mailbox 'Identity J.Wesselius 'PSTFolderPath c:\temp
Результат выполнения этой команды будет тут же отображен на экране:
[PS] C:\Windows\System32>export-mailbox -Identity j.wesselius -PSTFolderPath c:\temp 'Confirm:$FALSE
Identity : labs.local/Accounts/Jaap Wesselius
DistinguishedName : CN=Jaap Wesselius,OU=Accounts,DC=labs,
DisplayName : Jaap Wesselius
Alias : J.Wesselius
LegacyExchangeDN : /o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=J.Wesselius
PrimarySmtpAddress : J.Wesselius@Messaging-Consultants.nl
SourceServer : X2007SRV.labs.local
SourceDatabase : X2007SRV\First Storage Group\Mailbox Database
MailboxSize : 17770KB
IsResourceMailbox : False
TargetFolder :
PSTFilePath : c:\temp\J.Wesselius.pst
MoveType : ExportToPST
MoveStage : Completed
StartTime : 22-12-2009 13:34:54
EndTime : 22-12-2009 13:34:59
StatusCode : 0
StatusMessage : This mailbox has been exported to the PST file.
ReportFile : C:\Program Files\Microsoft\Exchange Server\Logging\MigrationLogs\export-Mailbox20091222-133448-8861463.xml
[PS] C:\Windows\System32>
И вот ваш PST.
Import-Mailbox
Для импортирования .PST файла в Exchange Server 2007 существует та же проблема разрешения, участники группы администраторов домена не смогут выполнять эту задачу, и снова будет использоваться пользователь ExAdmin. Чтобы команда import-mailbox работала корректно, пользователю ExAdmin нужно предоставить Send-As разрешения. Для предоставления этих разрешений откройте Exchange Management Shell и введите следующую команду:
Add-ADPermission 'Database 'First Storage Group\Mailbox Database' 'UserExAdmin 'ExtendedRightsSend-As
Как и в случае с Receive-As разрешением, на то, чтобы разрешения вошли в силу, потребуется некоторое время.
Для импортирования.PST файла в пользовательский почтовый ящик нужно открыть Exchange Management Shell и ввести следующую команду:
Import-Mailbox 'Identity J.Wesselius 'PSTFolderPath c:\temp\J.Wesselius.pst
И ваши данные будут в почтовом ящике.
Exchange Server 2010
Изменение разрешений с помощью Add-ADPermission команды сопряжено с ошибками, которые сложно обнаружить. В Exchange Server 2010 компания Microsoft представила концепцию управления доступом на основе роли (Role Based Access Control или RBAC). В RBAC многие роли предопределены, единственное, что вам нужно сделать, это добавить участника в Роль (Role), в нашем случае это пользователь ExAdmin. Можно также создавать собственные роли и добавлять в них участников.
Для назначения роли 'Mailbox Import Export' Role определенному пользователю откройте Exchange Management Shell и введите следующую команду:
New-ManagementRoleAssignment 'Role 'Mailbox Import Export' 'User 'ExAdmin'
Чтобы импортирование и экспортирование работало корректно, Outlook должен быть установлен на сервере управления (Management). Проблема на момент написания статьи заключалась в том, что Outlook должен быть 64-bit версией (32-bit версии в Exchange Server 2010 просто нет, даже инструментов Management Tools в этой версии!), а это означает, что придется использовать Outlook 2010, который в настоящий момент есть только в тестовой бета версии. Также, на сервер управления должна быть установлена роль сервера почтовых ящиков (Mailbox Server Role), однако нет необходимости монтировать почтовые базы данных.
Для экспортирования почтового ящика в .PST файл откройте Exchange 2010 Management Shell и введите следующую команду:
Export-Mailbox 'Identity J.Wesselius 'PSTFolderPath c:\temp
Содержимое почтового ящика будет экспортировано:
Чтобы импортировать .PST файл в почтовый ящик, введите следующую команду:
Import-Mailbox 'Identity J.Wesselius 'PSTFilePath c:\temp\j.wesselius.pst
Рисунок 4
Вот содержимое вашего почтового ящика!