wolf336
Goto Top

Öffentliche Ordner Migration 2010 nach 2016

Hallo Leute,
ich verzweifle gerade an einem Problem, das beharrlich immer wieder auftaucht.
Folgender Vorgang:
Migration der öffentlichen Ordner von einem SBS2011 mit Exch2010 auf einen Server 2016 Std mit Exchange 2016.

Product VersionFileVersion AdminDisplayVersion
14.03.0496.000 14.03.0496.000 Version 14.3 (Build 123.4)
15.01.1591.010 15.01.1591.010 Version 15.1 (Build 1591.10)

Die Sache habe ich mit dieser Anleitung auf den Weg gebracht:
docs.microsoft.com/en-us/exchange/collaboration/public-folders/batch-migration-from-previous-versions?view=exchserver-2016
Anfängliche Probleme mit Speicherlimits, Send/Receive quota und E-Mail-aktivierten Ordnern habe ich behoben und dafür insgesamt 3 Rollbacks durchgeführt.
Anleitung hier:
ehloexchange.com/legacy-public-folder-migration/
Die Umbenennung der E-Mail-aktivierten Ordner erfolgte nach dieser Anleitung (das enthaltene Skript habe ich noch erweitert um alle gemeldeten Zeichenketten abzudecken)
exchange-powershell.com/database-management/bulk-public-folder-rename-and-cleanup-script/
Anschließend schien die Migration dann zunächst zu funktionieren. Der Status war nach Abschluss zunächst "Synced". Die Migration ließ sich jedoch nicht abschließen. Es stellte sich heraus, dass der Status inzwischen "SyncedWithErrors" war.
Auch im inzwischen siebten Versuch bricht der Vorgang beharrlich ab mit der Meldung im angehängten Screenshot.
migrationsbatch fehler
Dieser Ordner wurde jedoch, wie schon Anfangs erwähnt, umbenannt. Ebenso habe ich die im Verlauf der Migration erstellten csv- und xml-Dateien dahingehend überprüft.
Es gelingt mir nicht, diese Migration zu Ende zu bringen.
Was mache ich falsch? Woher nimmt der Migrationsbatch die Information für diese Fehlermeldung?

Grüße

Wolfgang

Content-ID: 596245

Url: https://administrator.de/contentid/596245

Ausgedruckt am: 25.11.2024 um 23:11 Uhr

Inf1d3l
Lösung Inf1d3l 14.08.2020 aktualisiert um 13:54:15 Uhr
Goto Top
Leerzeichen oder Sonderzeichen bei öffentlichen Ordnern sind die häufigste Fehlerquelle bei der Migration 2010 -> 2016. Schau mal zusätzlich per ADSI-Edit bei den öffentlichen Ordnern, ob Namen, Aliases etc. stimmen. Ich empfehle auch https://www.frankysweb.de/ als Anlaufstelle. Dort wurde das Thema ausgiebig behandelt.
wolf336
wolf336 14.08.2020 aktualisiert um 16:34:17 Uhr
Goto Top
Hallo Luci0815,
vielen Dank schonmal für die Antwort.
Leerzeichen und Sonderzeichen existieren wie oben beschrieben nicht mehr in der Quelldatenbank. Trotzdem erscheint die Fehlermeldung dass sie noch da sind.
Und im ADSI-Editor finden sich nur Hinweise auf die Datenbanken, nicht aber auf die einzelnen Datensätze darin. Aber ich schau da nochmal hin.
Übrigens habe ich die ersten Tests nach der Anleitung bei Frankysweb gemacht. Die war aber für meine Datenmenge (ca. 7000 öffentliche Ordner mit etwas mehr als 100 GB Daten) nicht ausreichend.

Grüße

Wolfgang
Inf1d3l
Inf1d3l 14.08.2020 um 16:22:11 Uhr
Goto Top
Hi,

ich kann leider nicht mehr nachschauen, aber ich musste damals einige Namen per ADSI-Edit korrigieren. Irgendwo im Active Directrory stehen auch die öffentlichen Ordner (ich spreche nicht von der Exchange-Datenbank). Erst danach ging es. Vielleicht den falschen Namenskontext beim Verbinden erwischt? Müsste unter Konfiguration - Services sein.
goscho
Lösung goscho 14.08.2020 um 16:26:23 Uhr
Goto Top
Mahlzeit,

ich hatte zuletzt ein ähnliches Problem mit der Migration von öffentlichen Ordnern zu Exchange 2016.
Es waren auch keine Leerzeichen oder Sonderzeichen mehr in den Ordnern. Wenn man solch einen Ordner aber im ESM geöffnet hat, wurde genau das reklamiert.

Geholfen hat, die betroffenen Ordner auf nicht mailaktiviert zu stellen.
Habe ich bei sehr vielen gemacht. Es waren über 850 öffentliche Ordner und unzählige davon mailaktiviert, obwohl nur eine handvoll Mails empfangen müssen.
Die dann wieder Mails empfangen sollten, habe ich erneut mailaktiviert und manuell die Mailadressen eingetragen.
War richtig viel Handarbeit.

PS: Ich habe das schon nach dem 1. Rollback gemacht. face-wink
wolf336
wolf336 14.08.2020 um 17:29:25 Uhr
Goto Top
Hallo nochmal,
bei Konfiguration - Services war ich die ganze Zeit und bin jetzt unter dem Standardmäßigen Namenskotext / MS Exchange Systems Objects fündig geworden (auch Dank meines Kollegen und Google-Spezialisten Christian, den ich hier ausdrücklich lobend erwähnen möchte).
Ich konnte also das Objekt finden und den Namen, den cn, den DisplayName und den mailNickname ändern.
Im Moment läuft also Runde 8 und ich hoffe dass jetzt ein anderer Fehler angezeigt wird oder dass im Idealfall das Ding durchläuft.
Bei einer Laufzeit zwischen 12 und 19 Stunden werde ich es dann erst am Montag wissen.
Schönes Wochenende, Grüße
Wolfgang
wolf336
wolf336 14.08.2020 um 17:34:34 Uhr
Goto Top
"Geholfen hat, die betroffenen Ordner auf nicht mailaktiviert zu stellen."

Danke auch dir für die Antwort. Das habe ich auch auf der Agenda. Allerdings mache ich das dann "eins nach dem anderen"...
Grüße
und schönes Wochenende
Wolfgang
wolf336
wolf336 17.08.2020 um 13:17:09 Uhr
Goto Top
Hallo zusammen,
eine kurze Rückmeldung. Die Fehlermeldung hat sich jetzt tatsächlich geändert. Es schaut also ganz danach aus, dass mich Luzi0815 auf den richtigen Weg gebracht hat.
Grüße
Wolfgang
wolf336
wolf336 20.08.2020 aktualisiert um 12:45:41 Uhr
Goto Top
Hallo zusammen,
der Vollständigkeit wegen hier noch eine kurze Zusammenfassung:
Im Durchlauf 9 hat es jetzt endlich funktioniert.
Hintergrund: Die Suche im ADSI war der richtige Weg. Allerdings waren (oberflächlich betrachtet) alle Ordner korrekt benannt.
Der Fehler kam letztlich in den zugeordneten Attributen zum Vorschein. Die oben beschriebene Meldung bezog sich auf das Attribut mailNickname.
Die Verwendung des ersten Skripts änderte also auf dem (Quell-)Exchange Server die Ordnernamen.
Das zweite Skript musste dann auf einem der DCs ausgeführt werden um die entsprechenden Datensätze zu korrigieren.

Skript 1 (Ordner umbenennen) Link

$zfold = get-publicfolder -recurse | where-object {$_.Name -like "*"}  
 
foreach($zf in $zfold){
    $newName = $zf.name
    $newName = $newName.Trim()
    $newName = $newName.Replace('/', '|')  
    $newName = $newName.Replace('\', '|')  
    $newName = $newName.Replace(' ', '_')  
    $newName = $newName.Replace('...', '')  
    $newName = $newName.Replace('.', '')  
    $newName = $newName.Replace('..', '')  
    $newName = $newName.Replace(':', '|')  
    $newName = $newName.Replace('*', '')  
    $newName = $newName.Replace(';', '|')  
    $newName = $newName.Replace('ö','oe')  
    $newName = $newName.Replace('ä','ae')  
    $newName = $newName.Replace('ü','ue')  
    $newName = $newName.Replace('é','e')  
    $newName = $newName.Replace('(','')  
    $newName = $newName.Replace(')','')  
    $newName = $newName.Replace('@','_at_')  
    $newName = $newName.Replace('ß','ss')  
    $newName = $newName.Replace('?','')  
    $newName = $newName.Replace('&','_und_')  
 
    #write-host $newname
    set-publicFolder -Identity $zf.identity -Name $newName
 
    }
 
write-host "Permissions..."  
 
$zfold = get-publicfolder -recurse | where-object {$_.Name -like "*"}  
 
foreach($zf in $zfold){
 
    $Identity = $zf.ParentPath + "\" + $zf.name  
 
    Add-PublicFolderClientPermission -Identity $Identity  -User "Administrator" -AccessRight Owner  
 
    }
write-host "Done..."  

Skript 2 (AD bearbeiten) Link
###############################################################
# Entfernt ungültige Zeichen aus dem mailNickname
# Am besten auf einem DC in einer Standard-Powershell ausführen
###############################################################

$pfs = Get-ADObject -filter {objectclass -eq "publicfolder"} -Properties mailNickname  

foreach ($pf in $pfs){

$nick = $pf.mailNickname

$nospace = $nick -replace ",", "|"  
$nospace = $nospace -replace "/", "|"  
$nospace = $nospace -replace "\\", "|"  
$nospace = $nospace -replace " ", "_"  
$nospace = $nospace -replace "\.", ""  
$nospace = $nospace -replace ":", "|"  
$nospace = $nospace -replace "\*", ""  
$nospace = $nospace -replace ";", "|"  
$nospace = $nospace -replace "ö", "oe"  
$nospace = $nospace -replace "ä", "ae"  
$nospace = $nospace -replace "ü", "ue"  
$nospace = $nospace -replace "é", "e"  
$nospace = $nospace -replace "\(", ""  
$nospace = $nospace -replace "\)", ""  
$nospace = $nospace -replace "@", "_at_"  
$nospace = $nospace -replace "ß", "ss"  
$nospace = $nospace -replace "\?", ""  
$nospace = $nospace -replace "&", "_und_"  

Get-ADObject -Filter {mailNickname -eq $nick} | Set-ADObject -Replace @{mailNickname=$($nospace)}

}

Zugunsten dieser Skript-Lösung habe ich den Vorschlag von goscho dann auch nicht weiter verfolgt, auch weil bei meinem Server mehr als 90% der Ordner mailaktiviert sind.
goscho
goscho 21.08.2020 um 08:40:57 Uhr
Goto Top
Moin Wolf336,

danke für die Skripte. Die werde ich gleich mal abspeichern. Ich habe noch mehrere Migrationen vor mir und da kann ich diese sicherlich gebrauchen.