Aktionen

Exchange gesamtstrukturübergreifende Verschiebungen Linksammlung: Unterschied zwischen den Versionen

Aus znilwiki

K (Reihenfolge)
K (Error looking up source MBX)
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 24: Zeile 24:
 
* Bei der '''''Zielzustellungsdomäne''''' habe ich immer die Domäne der Absenderadresse ausgewählt - keine Ahnung ob das richtig ist
 
* Bei der '''''Zielzustellungsdomäne''''' habe ich immer die Domäne der Absenderadresse ausgewählt - keine Ahnung ob das richtig ist
 
* Nun warten. Der verschiebt jetzt das Postfach. Am Ende hat der Benutzer in der alten Domäne keine Postfach mehr (Mailbox disabled)
 
* Nun warten. Der verschiebt jetzt das Postfach. Am Ende hat der Benutzer in der alten Domäne keine Postfach mehr (Mailbox disabled)
 +
<br>
 +
Ich hatte dann das es bei ein paar Benutzern ging - und dann wurden die ersten '''''Abgeschlossen mit Fehlern'''''.<br>
 +
Die hatten dann nicht geklappt. Grund war das zu große Mails vorhanden waren oder zu viele Fehler.<br>
 +
Diese Postfächer bekam ich dann aber mit PowerShell verschoben:<br>
 +
New-MoveRequest -Identity Mmustermann@domain.local -RemoteCredential $RemoteCredentials -TargetDeliveryDomain 'domain.local' -RemoteGlobalCatalog DC.alte-domain -Remote -RemoteHostName FQDN.alter.mailserver -TargetDatabase NAME-der-ZIELDATENBANK -BadItemLimit 20000 -AcceptLargeDataLoss -LargeItemLimit 20000
 +
Den <code>-AcceptLargeDataLoss</code> kann man nur in der PowerShell nutzen.<br>
 +
Man kann dann baer nicht über die Web-GUI den Fortschritt sehen, das geht über die PowerShell:<br>
 +
Zuerst die Identity des Job heruasfinden:<br>
 +
Get-MoveRequest | Select-Object Identity
 +
Ausgabe ist zum Beispiel:<br>
 +
domain.local/04.Benutzer/Mustermann, Max
 +
Und damit dann die Statistiken abfragen:<br>
 +
Get-MoveRequest -Identity "domain.local/04.Benutzer/Mustermann, Max" | Get-MoveRequestStatistics -IncludeReport
 +
Wenn zu hängen scheint oder einen Fehler gibt:
 +
Get-MoveRequest -Identity "domain.local/04.Benutzer/Mustermann, Max" | Get-MoveRequestStatistics -IncludeReport | fl
 +
Dann sieht man unter anderem die genauen Migrationsschritte<br>
 +
<br>
 +
----
 +
 +
==Fehlermeldungen und die Lösungen==
 +
===Error looking up source MBX===
 +
D:\Program Files\Microsoft\Exchange Server\V15\Scripts\Prepare-MoveRequest.ps1 : Error looking up source MBX derbenutzerderverschobenwerdensool in source forest.
 +
Verdammt, bei 20 Bneutzern funktioniert es - und bei einem dann nicht?<br>
 +
Die Lösung war:<br>
 +
* Ich hatte bei <code>-Identity</code> immer den Anmeldename genutzt - und das hat bei 95 Prozent der Benutzer auch funktioniert.
 +
* Bei den Benutzern mit der Fehlermeldung nam ich statt dessen den <code>Alias</code> bzw. den Wert aus dem AD-Attribut <code>mailNickname</code>
 +
* statt '''''mmustermann''''' also '''''max.mustermann'''''
 +
* In der Quelldomäne war das leider nicht einheitlich gesetzt
 +
<!--
 +
* Ich habe das Attribut <code>mailNickname</code> in der neuen Domäne auf den gleichen Wert angepasst wie in der alten Domäne (mit ADSIEdit)
 +
* Ich habe bei <code>-Identity</code> nicht den Anmeldenamen genommen sondern dann diesen <code>mailNickname</code>
 +
-->
 +
Wie bin ich drauf gekommen?<br>
 +
Ich habe mir mal den Quelltext des <code>Prepare-MoveRequest.ps1</code> angesehen und dabei entdeckt das eben dieser Alias bzw mailNickname eines der Suchkriterien ist.<br>
 +
----
  
 
----
 
----

Aktuelle Version vom 8. September 2019, 10:32 Uhr

1 Vorwort

Ich hatte 2 Domänen mit einer gegenseitigen Vertrauensstellung zueinander.
Die Benutzer habe ich mittels des ADMT-Tools (Active Directory Migration Tool) bereits zur Zieldomäne kopiert.
Mit den nachfolgenden Links (in der Reihenfolge) gelang auch das Verschieben der Postfächer.


2 Reihenfolge

  • Benutzer per ADMT in neue Domäne migriert
  • Benutzer per Exchange-Management-Konsole vorbereitet (auf dem Ziel-Server):
Enable-MailUser -Identity ANMELDENAME -ExternalEmailAddress BENUTZER@DOMAIN.SUFFIX
  • Prepare-MoveRequest vorbereiten (auf dem Ziel-Server) - er fragt Anmeldedaten für die Ziel und Quelldomäne ab
$LocalCredentials = Get-Credential 
$RemoteCredentials = Get-Credential
  • In das Exchange-PowerShell Verzeichnis wechseln (hier 2016/2019) (auf dem Zielserver):
cd C:\Program Files\Microsoft\Exchange Server\V15\Scripts
  • Prepare-Moverequest ausführen - das -UseLocalObject ist wichtig damit er keinen neuen Benutzer anlegt sondern den vorhandenen nimmt!
.\Prepare-MoveRequest.ps1 -UseLocalObject -Identity ANMELDENAME -RemoteForestDomainController DC.alte.domain -RemoteForestCredential $RemoteCredentials -LocalForestDomainController dc.neue.domain -LocalForestCredential $LocalCredentials
  • Nun kann man über die Managementoberfläche eine neue Migration starten:
ClipCapIt-190903-170159.PNG
  • Bei Zu verschiebene Benutzer auswählen könnt Ihr nun jene Benutzer hinzufügen bei denen Ihr zuvor den Prepare-MoveRequest ausgeführt habt.
  • Den Migrationsendpunkt sollte er von alleine finden - Wenn nicht dann folgt den beiden MRS-Proxy aktivieren Links im nächsten Abschnitt
  • Bei der Zielzustellungsdomäne habe ich immer die Domäne der Absenderadresse ausgewählt - keine Ahnung ob das richtig ist
  • Nun warten. Der verschiebt jetzt das Postfach. Am Ende hat der Benutzer in der alten Domäne keine Postfach mehr (Mailbox disabled)


Ich hatte dann das es bei ein paar Benutzern ging - und dann wurden die ersten Abgeschlossen mit Fehlern.
Die hatten dann nicht geklappt. Grund war das zu große Mails vorhanden waren oder zu viele Fehler.
Diese Postfächer bekam ich dann aber mit PowerShell verschoben:

New-MoveRequest -Identity Mmustermann@domain.local -RemoteCredential $RemoteCredentials -TargetDeliveryDomain 'domain.local' -RemoteGlobalCatalog DC.alte-domain -Remote -RemoteHostName FQDN.alter.mailserver -TargetDatabase NAME-der-ZIELDATENBANK -BadItemLimit 20000 -AcceptLargeDataLoss -LargeItemLimit 20000

Den -AcceptLargeDataLoss kann man nur in der PowerShell nutzen.
Man kann dann baer nicht über die Web-GUI den Fortschritt sehen, das geht über die PowerShell:
Zuerst die Identity des Job heruasfinden:

Get-MoveRequest | Select-Object Identity

Ausgabe ist zum Beispiel:

domain.local/04.Benutzer/Mustermann, Max

Und damit dann die Statistiken abfragen:

Get-MoveRequest -Identity "domain.local/04.Benutzer/Mustermann, Max" | Get-MoveRequestStatistics -IncludeReport

Wenn zu hängen scheint oder einen Fehler gibt:

Get-MoveRequest -Identity "domain.local/04.Benutzer/Mustermann, Max" | Get-MoveRequestStatistics -IncludeReport | fl

Dann sieht man unter anderem die genauen Migrationsschritte


3 Fehlermeldungen und die Lösungen

3.1 Error looking up source MBX

D:\Program Files\Microsoft\Exchange Server\V15\Scripts\Prepare-MoveRequest.ps1 : Error looking up source MBX derbenutzerderverschobenwerdensool in source forest.

Verdammt, bei 20 Bneutzern funktioniert es - und bei einem dann nicht?
Die Lösung war:

  • Ich hatte bei -Identity immer den Anmeldename genutzt - und das hat bei 95 Prozent der Benutzer auch funktioniert.
  • Bei den Benutzern mit der Fehlermeldung nam ich statt dessen den Alias bzw. den Wert aus dem AD-Attribut mailNickname
  • statt mmustermann also max.mustermann
  • In der Quelldomäne war das leider nicht einheitlich gesetzt

Wie bin ich drauf gekommen?
Ich habe mir mal den Quelltext des Prepare-MoveRequest.ps1 angesehen und dabei entdeckt das eben dieser Alias bzw mailNickname eines der Suchkriterien ist.



4 Links


5 Tipps

Die AutoDiscover-Namensauflösung vom Ziel- zum Quell-Exchangeserver muss funktionieren! Da die beiden Server hierbei miteinander konkurierten habe ich auf dem Ziel-Exchange temporär Einträge dafür in die lokale Host-Datei geschrieben (AutoDiscover nicht auf sich selbst sondern auf den anderen Exchange Server der Quell-Domäne = alten Domäne).


6 Kommentare


Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, trage deinen Namen oder deine Email-Adresse ein oder melde dich an. Du kannst das Feld auch einfach leer lassen. Bei einem Kommentar wird deine IP-Adresse zusammen mit dem Text, den angegebenen Namen bzw. der Email-Adresse in der Datenbank für die Kommentare dauerhaft gespeichert. Genaueres kannst du hier nachlesen: Datenschutzerklärung