Экспорт майлбоксов пользоватиелей в pst файлы

Модераторы: flash, mordor

Ответить
Аватара пользователя
flashdeath
Администратор
Сообщения: 25
Зарегистрирован: 08 ноя 2007, 14:22

Экспорт майлбоксов пользоватиелей в pst файлы

Сообщение flashdeath »

Установленное ПО
Windows Server 2008 r2 standart
Exchange 2010 standart обновленный до SP1 (обновление проблем не вызвало поэтому рекомендую)
Поскольку ОС стандарт реализовать DAG не получилось, а локальной репликация баз осталась далеко в прошлом (Exchange 2007) ::q16::
Встала задача хоть как то обезопасить почту пользователей, было принято решение сливать всю почту в pst файлы
командлет Export-Mailbox работать отказался наглухо ::q03:: , поэтому пришлось обновляться до SP1 ::q17::
После обновления появилось несколько новых командлетов
Но давайте по порядку
для того чтобы иметь право сливать почту в pst мы должны дать себе привилегии "Mailbox Import Export", это встроеные привелегии но по умолчанию они ни кому не назначены
открываем EMS
назначаем права экспота импорта

Код: Выделить всё

New-ManagementRoleAssignment -Name "Exchange-Import-Export-Management" -Role "Mailbox Import Export" -SecurityGroup "Exchange-Import-Export-Group"
добавляем участников (мемберов) в группу Exchange-Import-Export-Group (она должна появится в ou Microsoft Exchange Security Groups) это можно сделать через АД или ECP, но мы будем использовать EMS

Код: Выделить всё

Add-RoleGroupMember "Exchange-Import-Export-Group" -Member "AdminExchangeUsername"
Заодно добавляем группу аудита

Код: Выделить всё

New-ManagementRoleAssignment -Name "Exchange-Audit-Management" -Role "Support Diagnostics" -SecurityGroup "Exchange-Audit-Group"
Добавляем мембера

Код: Выделить всё

Add-RoleGroupMember "Exchange-Audit-Management"  -Member "AdminExchangeUsername"
После этого (или до неважно) на файловом сервере создаем папку PST шарим ее как PST$ и даем права full access для
Exchange Servers, Exchange Trusted Subsystem ну и конечно Domain Admin и Exchange Admin

Теперь проверяем работоспособность

Код: Выделить всё

New-MailboxExportRequest -Mailbox useralias -FilePath \\fileserver\PST$\useralias.pst
Должны получить Ответ что-то вроде этого

Код: Выделить всё

Name                                           Mailbox                                        Status
----                                               -------                                             ------
MailboxExport                             domain.tdl/Users/givenname            Queued
но сливать всех пользователей ручками неудобно поэтому написал скрипт

Код: Выделить всё

Get-MailboxExportRequest -Status Completed | remove-mailboxexportrequest -Confirm:$false
#после исполнения регвесты сами не удаляются поэтому грохаем все выполненые регвесты
$filepath="\\fileserver\pst$\"
#Прописываем путь к шаре
$pst=".pst"
#Расширение файла
$date=Get-Date -UFormat %d-%m-%Y
#Берем Сегодняшнюю дату в формате дд-мм-гггг
Get-Mailbox | where { $_.ServerName -eq "MailboxServer"} | foreach{
#Получаем список майлбоксов
start-sleep 10
#Ждем 10 секунд
$alias=$_.Alias
#Бререм алиас мэйлбокса
$name = $_.SamAccountName
#берем логин пользователя
$path_fol="$filepath$name\"
#Задаем путь куда класть .pst чтобы все лежало по своим папкам
if (!(test-path $path_fol)){mkdir $path_fol}
#Проверям есть ли такая папка на сервере если нет то создаем
dir $path_fol | where {$_.lastwritetime -le (get-date).adddays(-7)} | del -force
#Удаляем все файлы старше 7 дней
New-MailboxExportRequest -Mailbox $name -FilePath $path_fol$name-$date$pst
#Экспортируем майлбокс пользователя
} 
Вот собственно и вся премудрость, как этот скрипт поставить в шедулер думаю сами догадаетесь
Могу сказать что у меня все работает
Ответить