Как выгрузить и загрузить ящик exchange в pst файл и обратно
Добрый день! Уважаемые читатели и гости крупного IT блога России pyatilistnik.org. В прошлый раз я вам раскрыл тему, как запускать скрипты в PowerShell. Сегодня мы поработаем с титаном в мире почтовых систем, чангой. Выгрузка ящиков в PST файл мне потребовалась для переезда на новую доменную структуру с новым сервером Exchange. Нужно было создать на всякий случай копию всех ящиков пользователей.
Так как Exchange 2007 с Exchange Management Shell не может сделать экспорт в 64-х битной системе (x64), то пришлось ставить Exchange Management Shell на 32-х битную систему (x86) (в качестве системы для выгрузки была использован Windows XP x86). Так же в требованиях для выгрузки присутствует Microsoft Outlook 2003 SP2 или старше, который так же был установлен в Windows XP. А для установки Exchange Management Shell потребовались: Windows Installer 4.5 иIIS сервер ( я установил Internet Information Services (IIS) 7.5 Express) все эти продукты можно найти на сайте Microsoft.
Итого, нам для выгрузки почтовых ящиков из Exchange 2007 потребуется:
- Windows XP x86 введенная в домен.
- Internet Information Services (IIS) 7.5 Express
- Windows Installer 4.5
- Exchange Management Shell
- Microsoft Outlook 2003 SP2 или старше.
После установки всех требуемых компонентов запускаем Exchange Management Shell и начинаем процесс выгрузки ящиков. Весь список ящиков можно посмотреть командой:
Get-Mailbox
Теперь нам нужно дать права администратору на доступ ко всем ящикам (будем считать, что учетная запись администратора – Administrator).
Для того, чтобы дать доступ к конкретному ящику:
Add-MailboxPermission -Identity имя_ящика -User пользователь_кому_даем_доступ -AccessRights FullAccess
Add-MailboxPermission -Identity warranty -User Administrator -AccessRights FullAccess
Если доступ нужен на все ящики:
Get-Mailbox | Add-MailboxPermission -User Administrator -AccessRights FullAccess
После того, как будет дан доступ можно выгружать почтовые ящики в PST файлы:
Если нужно выгрузить отдельные ящики, то выполняем команду:
export-Mailbox -Identity имя_пользователя -PSTFolderPath локальный_путь_выгрузки.pst
Пример:
export-Mailbox -Identity USERTEST -PSTFolderPath c:\USERTEST.pst
Данной командой мы выгрузили почтовый ящик пользователя USERTEST в файлc:\USERTEST.pst (вместо имени пользователя можно так же писать почтовый адрес).
Но если мы хотим выполнить выгрузку всех ящиков, то таким образом это будет слишком долго, поэтому для выгрузки можно использовать команду:
Get-Mailbox | export-Mailbox -PSTFolderPath путь_выгрузки
Пример:
Get-Mailbox | export-Mailbox -PSTFolderPath c:\PSTs
Этой командой мы выгрузили все почтовые ящики в папку c:\PSTs. Для каждого ящика будет создан отдельный PST файл.
Если нам потребуется загрузить некоторые ящики на новый сервер, то так же запускаем на новом сервере Exchange Management Shell и после того, как дадим пользователю, из-под которого будем загружать письма доступ к папке, права на полный доступ к нужным почтовым ящикам выполним команду загрузки из PST в почтовый ящик:
Для одиночных ящиков:
Import-Mailbox –Identity пользователь –PSTFolderPath: путь_к_PST_файлу
Пример:
Import-Mailbox –Identity USERTEST –PSTFolderPath: c:\USERTEST.pst
Для группового перемещения:
Get-Mailbox | Import-Mailbox -PSTFolderPath путь_к_папке_с_PST_файлами
Пример:
Get-Mailbox | Import-Mailbox -PSTFolderPath c:\PSTs
Конечно же для групповой загрузки имена пользователей должны совпадать. Теперь вы готовы к экспорту и импорту писем в/из Microsoft Exchange.
Работает, спасибо.
Не работает
Export-MailBox : Не удается найти параметр, соответствующий имени параметра -PSTFolderPath
Exch2007SP3