Exchange 2010 zu 2016 – Öffentliche Ordner Migration

Hallo Freunde der Sonne,

eine Wohltat seitens Microsoft ist die Migration der öffentlichen Ordner von Exchange 2010 nach Exchange 2016 (Public-Folder-Database zu Public-Folder-Mailbox).

Exchange 2010 zu 2016 – Öffentliche Ordner Migration

Quelle(n):

Ablauf:

  1. Skriptdateien für die Exchange-Server herunterladen
  2. Indizierung der öffentlichen Ordner Struktur auf dem Quell-Exchange
  3. Erstellen der Zielstruktur
  4. Migration der Daten via Batch
  5. Abschluss der Migration

1. Skriptdateien für die Exhcange-Server herunterladen

Folgende Skripte bitte auf den Exchange 2010 herunterladen:
https://www.microsoft.com/en-us/download/details.aspx?id=38407

Alternativ aus unserer KB:
Exchange 2010 zu 2016 Skripte

Die Skript-Dateien bitte in die Exchange-Installations-Verzeichnisse für Skripte entpacken:

Microsoft Exchange 2010:

C:\Program Files\Microsoft\Exchange Server\V14\Scripts

Microsoft Exchange 2016

C:\Program Files\Microsoft\Exchange Server\V15\Scripts

2. Indizierung der öffentlichen Ordner Struktur auf dem Quell-Exchange

In diesem Beispiel werden alle Dateien via UNC-Pfad verwendet, dies soll sicherstellen, dass jeder Exchange-Server die entsprechenden Dateien verwendet.

Nun bitte auf dem Quell-Server (Exchange 2010) folgende Skripte ausführen:

Get-PublicFolder -Recurse | Export-CliXML \\exch2016\c$\Legacy_PFStructure.xml
Get-PublicFolderStatistics | Export-CliXML \\exch2016\c$\Legacy_PFStatistics.xml
Get-PublicFolder -Recurse | Get-PublicFolderClientPermission | Select-Object Identity,User -ExpandProperty AccessRights | Export-CliXML \\exch2016\c$\Legacy_PFPerms.xml

Anpassung der öffentlichen Ordner die einen Backslash im Namen enthalten (ggf. optional),
zuerst die Anzeige aller anzupassenden Ordner:

Get-PublicFolderStatistics -ResultSize Unlimited | Where {$_.Name -like "*\*"} | Format-List Name, Identity

Und nun bitte alle Ordner vom Namen her überarbeiten:

Set-PublicFolder -Identity <public folder identity> -Name <new public folder name>

3. Erstellen der Zielstruktur

Zuerst bauen wir uns das passende Format für den Migrations-Batch (Exchange 2010):

cd C:\Program Files\Microsoft\Exchange Server\V14\Scripts
.\Export-PublicFolderStatistics.ps1 "\\exch2016\c$\FolderSize.csv" "Exchange-2010-Server"
.\PublicFolderToMailboxMapGenerator.ps1 20000000000 "\\exch2016\c$\FolderSize.csv" "\\exch2016\c$\PFMailboxes.csv"

Hinweis: Ich empfehle ab diesem Schritt etwas vor zu arbeiten und ggf. eine Postfach-Datenbank mit Umlaufprotokollierung und ohne Speichergrenzen für eine Reibungslose Migration anzulegen – notfalls kann die spätere Public-Folder-Mailbox in andere Datenbanken migriert werden. (ggf. den Mailbox-Namen in den CSV anpassen)

Nun auf dem neuen Server (Exchange 2016) die Public-Folder-mailbox anlegen:

cd C:\Program Files\Microsoft\Exchange Server\V15\Scripts
.\Create-PublicFolderMailboxesForMigration.ps1 -FolderMappingCsv "\\exch2016\c$\Mapping.csv" -EstimatedNumberOfConcurrentUsers:<estimate>

4. Migration der Daten via Batch

Erstellen eines neuen Migration-Batch auf dem neuen Server (Exchange 2016):

New-MigrationBatch -Name PFMigration -SourcePublicFolderDatabase (Get-PublicFolderDatabase -Server exch2010) -CSVData (Get-Content "\\exch2016\c$\PFMailboxes.csv" -Encoding Byte) 
Start-MigrationBatch PFMigration

5. Abschluss der Migration

Hinweis: Um den Umschaltmoment für den Zugriff der Datenbanken zu erzwingen lohnt es sich einen der Server neuzustarten. (vorzugsweise den alten wenn alle anderen Daten bereits migriert wurden)

Auf dem alten Server (Exchange 2010) wird die alte Struktur deaktiviert:

Set-OrganizationConfig -PublicFoldersLockedForMigration:$true

Auf dem neuen Server (Exchange 2016) wird die Struktur nun freigegeben:

Set-OrganizationConfig -PublicFoldersEnabled Remote
Complete-MigrationBatch PFMigration

Anbindung der öffentlichen Ordner in Exchange 2016:
Vorsicht im Beispiel werden alle Mailbox an die neuen öffentlichen Ordner angebunden!

Get-Mailbox | Set-Mailbox -DefaultPublicFolderMailbox <Public Folder Mailbox Identity>

Aktivierung der Hierarchie-Synchronisation für die neuen öffentlichen Ordner:

Get-Mailbox -PublicFolder | Set-Mailbox -PublicFolder -IsExcludedFromServingHierarchy $false

Abschluss der Migration:

Set-OrganizationConfig -PublicFolderMigrationComplete:$true
Set-OrganizationConfig -PublicFoldersEnabled Local