New-MailboxDatabase ` -Name "ServiceDB" ` -Server "EXCH01" ` -EdbFilePath "D:\ServiceDB\ServiceDB.edb" ` -LogFolderPath "E:\ServiceDB" # Перезапускаем Information Store и монтируем базу Restart-Service MSExchangeIS -Force Mount-Database -Identity "ServiceDB" # Проверяем статус Get-MailboxDatabase -Identity "ServiceDB" | Format-List Name,Server,Recovery,Mounted |
Все сервисные учётки находятся в OU «contoso.com/contoso/ServiceAccounts»
# Получаем список всех ящиков в данном OU
$svcMailboxes = Get-Mailbox -ResultSize Unlimited |
Where-Object { $_.OrganizationalUnit -eq 'contoso.com/contoso/ServiceAccounts' }
# Отображаем выбранные ящики
$svcMailboxes | Select Name,DisplayName,Database,OrganizationalUnit | Format-Table -AutoSize
# Запускаем requests на перенос
foreach ($mb in $svcMailboxes) {
New-MoveRequest `
-Identity $mb.Identity `
-TargetDatabase "ServiceDB" `
-BadItemLimit 10
}
|
# 1) Перезапускаем службу миграции (MRS)
Restart-Service MSExchangeMailboxReplication
# 2) Возобновляем “застрявшие” запросы
Get-MoveRequest |
Where-Object { $_.Status -in 'Queued','Suspended' } |
Resume-MoveRequest
# 3) Слежение за прогрессом
Get-MoveRequest | Get-MoveRequestStatistics |
Select Identity,Status,PercentComplete | Format-Table -AutoSize
# 4) Увеличиваем BadItemLimit при необходимости
Set-MoveRequest -Identity synology@contoso.com -BadItemLimit 100
Resume-MoveRequest -Identity synology@contoso.com
# 5) Удаляем завершённые запросы
Get-MoveRequest |
Where-Object { $_.Status -eq 'Completed' } |
Remove-MoveRequest
|
Get-Mailbox -OrganizationalUnit 'contoso.com/contoso/ServiceAccounts' | Select Name,Database | Format-Table -AutoSize |