Potřebovali jsme přesunout veřejné složky (Public Folders) mezi dvěma Exchange servery, konkrétně z 2007 na 2010.
Postupů je na netu k nalezení mraky, nicméně obecně je jako jeden z kroků potřeba naklikat všem složkám nebo naskriptovat změnu Replication z jednoho serveru na druhý (z jedné DB na druhou).
Mělo by to jít pomocí skriptu MoveAllReplicas.ps1, z kterého se volá ReplaceReplicationOnPFRecursive.ps1, nicméně nám se tyto skripty v připravené podobě rozchodit nepodařilo.
Inspirovali jsme se však jejich obsahem a tak vzniknul níže uvedený primitivní skript na přenastavení všech replikací na cílový server:
$dbNew = get-publicfolderdatabase -server $newServer -erroraction Stop $getpfcmd = "get-publicfolder -server $oldServer -identity $TopPublicFolder -Recurse -resultsize unlimited" $tempik = invoke-expression $getpfcmd $tempik | foreach { $_.Name; $_.Replicas.Clear(); $_.Replicas += $dbNew.Identity; $_ | set-publicfolder -server $oldServer -replicas $_.Replicas }
…výše uvádím snippet kódu, který představuje podstatnou výkonnou část. Před spuštěním je potřeba nastavit $oldServer, $newServer a $topPubliFolder (obvykle na zpětné lomítko).