Org 2 Org Move-Mailbox (2007)

Mit dem Erscheinen von Exchange 2007 gibt es nun über die PowerShell eine neue Möglichkeit zur Migration. Das Commandlet "Move-Mailbox" kann Postfächer auch Organisationsübergreifend verschieben. Es löst damit die Funktion des Exchange Migration Wizard  von Exchange 2000/2003 ab. Alle anderen Tätigkeiten (öffentliche Ordner, Kontakte, Verzeichnisabgleich etc.) sind aber wie gehabt durchzuführen.

Das Exchange 2007 Commandlet "Move-Mailbox" bzw. kann nicht nur genutzt werden, um Postfächer innerhalb einer Organisation zwischen Servern zu verschieben, sondern auch über die Grenzen einer Organisation hinweg zu migrieren. Das kann sowohl eine Migration von Exchange Organisation zu einer neuen Exchange Organisation also auch in die Cloud sein.

Schritte einer Migration

Wenn Sie mit Move-Mailbox ein Postfach von einer Organisation in eine Organisation verlagern wollen, dann sollten Se folgende Schritte ablaufen lassen. Ich gehe davon aus, dass es zwei Exchange Organisationen gibt, und sie über einen Verzeichnisabgleich die beiden Organisationen verbunden haben (siehe auch Verbinden von Organisationen

  1. Zielpostfach "live" schalten
    Zuerst wird sichergestellt, dass das neue Postfach funktioniert. Wenn es sich im Ziel um einen Kontakt gehandelt hat, muss daraus nun ein AD-Benutzer mit Postfach werden. Wenn Sie die Benutzer ebenfalls migrieren, sollten Sie vorab vielleicht diese mit ADMT übertragen.
    Ist das Ziel schon länger ein Postfach, für welches aber Mails über eine Weiterleitung an das Quellpostfach geroutet wurden, dann ist die Weiterleitung zu entfernen (z.B. TargetAdddress)
  2. Quellkonto auf Zielkonto weiterleiten
    Über eine Weiterleitung in der Quelle wird nun sichergestellt, dass Mails an das alte Postfach auf das neue Zielpostfach umgeleitet wird. Das ist während der Migration nicht kritisch, da Exchange das Postfach sperrt aber nach der Migration würden wartende Mails wieder in das alte Postfach zugestellt. Daher muss die Weiterleitung vorher aktiviert werden
  3. Berechtigungen auf der Quelle entfernen
    Sie können zwar nicht den Benutzer selbst auf dem Quellpostfach aussperren, aber wenn es Stellvertreter oder Dienstkonten (Blackberry etc.) gibt, dann sollten sie deren Zugriff unterbinden, z.B. indem eben die Berechtigungen entfernt werden.
  4. Inhalte migrieren
    Nun gibt es ein Postfach in der Quelle, welches keine Aktivität mehr vorweisen sollte, d.h. keine Mails werden mehr zugestellt und kein Client sollte sich damit verbinden. Während des Move selbst ist die Quellmailbox durch Exchange gesperrt. Nach dem Move wäre die Quelle aber wieder frei.
  5. Quelle konvertieren
    Sie müssen zuverlässig verhindern, dass jemand noch die bereits migrierten Daten in der Quelle verwendet. Der einfachste Weg ist natürlich die umwandlung des Postfachs in einen MailUser oder einen Kontakt. Diese Funktion kann Move-Mailbox sogar über die Option "–SourceMailboxCleanupOptions MailEnableSourceAccount“ automatisch erstellen.

Es gibt natürlich noch die ein oder andere Variante dieser Migration, z.B. in dem vorab schon ältere Elemente "kopiert" werden, um die Down-Zeit des Postfachs zur Migration zu minimieren. Zudem sollten Sie nicht vergessen, dass auch auf dem Client eventuell Änderungen erforderlich sind, z.B. Anpassung der Profile

Matching

Bei der Parametrisierung von Move-Mailbox müssen Sie ja nur die Identität der Quelle angeben. Da stellt sich natürlich die Frage ,wie Move-Mailbox das Ziel findet. Hier hilft das Exchange Team Blog mit dem Artikel "Exchange 2007 Cross Org Mailbox Migration" auf http://blogs.technet.com/b/exchange/archive/2006/11/02/430289.aspx weiter, welcher schreibt:

Check if we can match the source NT account in the target Forest (account match based on SMTP address, source objectSID and target sidHistory, and legacyExchangeDN). If match is found, this account will be email enabled

Elan Shudnow schreibt auf seinem Blog ( http://www.shudnow.net/2009/06/09/cross-forest-mailbox-move-changes-in-exchange-2010/ )es auch noch mal deutlich.

  1. Match on objectSID
    First try masterAccountSID then try objectSID and sidHistory
  2. Match on source LegacyExchangeDN
    look für an x500:LegacyExchangeDN in target directory
  3. Match proxyaddresses
    look für any smtp addresses in the proxyaddresses attribute that exist in the source proxyaddresses attribute

Also muss man nur sicherstellen, dass das Zielobjekt z. B. die gleiche SMTP-Adresse hat oder vielleicht per ADMT sowieso schon die SIDHistory im Ziel mit der SID der Quelle gefüllt ist oder der LegacyExchangeDN übereinstimmt oder als X500-Adresse gefunden wird.

Beispielskript für die Migration

Die Migration über Forest-Grenzen hinweg erfordert immer die Angabe mehrere Credentials. Da lohnt es sich natürlich ein PowerShell-Skript anzulegen, welches zumindest schon die Anmeldenamen vorgibt. Wer mag, kann natürlich auch noch das Kennwort hinterlegen, auch wenn ich davon kein Freund bin.

$s = Get-Credential source.domain.tld\sourceadminuser
$t = Get-Credential targer.domain.tld\targetadminuser

$result = move-mailbox `
  -identity miguser `
  -TargetDatabase 'server\storagegroup\database' `
  -SourceForestGlobalCatalog 'dcsource.source.domain.tld' `
  -GlobalCatalog 'dctarget.target.domain.tld' `
  -DomainController 'dctarget.target.domain.tld' `
  -AllowMerge `
  -SourceForestCredential $s `
  -TargetForestCredential $t `
  -verbose -debug

$result

Natürlich können Sie diese Zeilen auch noch mit einer For-Each-Schleife auf mehrere Postfächer anwenden lassen.

Achtung:
Das Exchange 2007 Move-Mailbox-Commandlet löscht das Feld "TargetAddress" im Ziel nach der Migration.
Zudem passt es die Zieladressen anhand der Empfängerrichtlinien an.

Weitere Links