По поводу High Availability и Site Resilence много и достаточно подробно написано здесь. Сценарий хороший, но есть одно но. Как известно, пользователи почтовых ящиков подключаются к Exchange 2010 используя CAS Array. Фактически он играет роль общей точки доступа. В сайте может быть только один такой массив. Прописывается он на уровне почтовой базы через параметр RPCClientAccessServer. При переезде базы в другой сайт, этот параметр автоматически не переписывается, следовательно полностью автоматизировать процесс не получится (по идее старый массив CAS будет играть роль прокси для клиентов и перекидывать на нужный сервер, но хорошим это решение назвать сложно). Необходимо будет или вручную или с помощью скрипта этот параметр на переехавших базах переписывать.
В связи с этим попался интересный скрипт, который этот параметр у баз прописывает в зависимости от сайта где находится база.
$CASArray = @{"--" = "---"} $MBXArray = @{"--" = "---"} Get-ClientAccessArray | Foreach{$s=$_.Site;$f=$_.fqdn;$CASArray += @{"$s" = "$f"} } Get-ExchangeServer | Foreach{$s=$_.Site;$n=$_.Name;$MBXArray += @{"$n" = "$s"} } $Databases = Get-MailboxDatabase #Look each mailbox server and assign the appropriate CASArray #based on AD site ForEach($Database in $Databases){ $db = $Database.Name $inServerName = $Database.ServerName Write-Host "Mailbox Database: " $db Write-Host $inServerName ":" $Database.RpcClientAccessServer -NoNewLine $ADSite = $MBXArray[$inServerName] $CA = $CASArray[$ADSite] Write-Host " - " $ADSite ":" $CA -NoNewLine If($Database.RpcClientAccessServer -eq $CA){Write-Host " OK`n" -Foregroundcolor GREEN} else{ Write-Host " ERR`n" -Foregroundcolor RED Set-MailboxDatabase $db -RpcClientAccessServer $CA}}