CrossOrg Mailbox Mover 1.20

Download-Link:

Dieser Inhalt ist registrierten Members vorenthalten - das kostet nichts und ich sende auch keine SPAM-Mails! Ich möchte Dich lediglich bitten, mir Deinen realen Namen anzugeben - halt so wie im echten Leben, wenn man sich vorstellt. Die Freischaltung erfolgt automatisch! Ich behalte mir jedoch vor, Fake-Registrationen ohne Kommentar zu löschen. Die einzige Gegenleistung für viel Content ist also lediglich \"Fair-play\" ;-D... Bitte melde Dich an um den gesamten Beitrag lesen zu können.
Bitte registrieren Sie sich als Member, um den Download-Link zu erhalten. Die Registration ist kostenlos und dient lediglich dazu, damit ich weiss, mit wem ich es zu tun habe ;-D.

Das Tool “CrossOrgMailboxMover” ist Teil des iTrain Migration Toolkits, welches die Migrations-Tools von Microsoft komplettiert. CrossOrgMailboxMover ermöglicht die einfache Migration von Exchange 2003/2007/2010-Mailboxen über Forest-Grenzen hinweg, was mit den Bordmitteln von Microsoft nur schwer bis gar nicht zu bewerkstelligen ist. Die Zielorganisation muss dabei zwingend Exchange 2010 betreiben.

Problem:
Mit den Bordmitteln von Microsoft wird mit Exchange 2010 ein neuer PowerShell-Befehl eingeführt, welcher den bisherigen Befehl „move-mailbox“ ersetzt. Dieser neue Befehl heisst „new-moverequest“. Der Vorteil der neuen Variante ist, dass die Mailboxen im Online-Zustand – also im laufenden Betrieb – migriert werden können. Die Kehrseite der Medaille ist jedoch, dass zuvor die Attribute der migrierten Benutzerobjekte der Zieldomäne an die Attribute der Quelldomäne angeglichen werden müssen, damit dieser Befehl eine Übereinstimmung findet. Für dies stellt Microsoft zwar ein PS-Script bereit, welches jedoch als Zusatzdownload heruntergeladen werden muss – dieses Script funktioniert jedoch leider in den meisten Fällen nicht richtig. Zudem muss dessen Ausführung „gepiped“ werden, was die Komplexität und die Fehlerquellen erhöht. Das grösste Problem bei diesem Script ist, dass die Benutzerübereinstimmungen nicht korrekt erkannt und deshalb neue Benutzerobjekte erstellt werden. Dies führt zu doppelten Benutzern, etc.

Lösung:
Mein Tool macht zuerst den Abgleich der Attribute und erstellt NIE einfach so neue Benutzer. Zudem findet es die Übereinstimmungen SEHR akurat. Nach der Vorbereitung für die Migration, wird automatisch ein PS-Script erstellt, welches alle Move-Requests beinhaltet. Dieses kann dann gleich im Anschluss automatisch durch das Tool oder auch später selbst gestartet werden. Alles über einen Befehl mit ein paar wenigen, logischen Parametern!

Hinweis: Damit das Tool nach erfolgtem Attribut-Abgleich auch gleich die Mailboxen mit dem vorgefertigtem PowerShell-Script verschieben kann, muss die 64-Bit Version der powershell.exe im Anwendungsverzeichnis (des Tools) zu liegen kommen, da ansonsten die 32-Bit Version aus dem SYSWOW64-Verzeichnis gestartet wird!

Hinweis: Der Parameter „BaseDN“ spezifiziert den Basis-Pfad in der Zieldomäne. D.h. alle Benutzerobjekte unterhalb dieses Pfades werden verarbeitet und nach Übereinstimmungen der Attribute in der Quelldomäne untersucht. So ist es auch möglich, die Postfächer jeweil nur einer OU zu migrieren und die gesamte Migration Schritt für Schritt durchzuführen.

ACHTUNG: Das Tool darf keinesfalls mehrfach für einen einzelnen BaseDN ausgeführt werden, sofern das PowerShell-Script den MoveRequest schon vollzogen hat. Ansonsten ist dies kein Problem und gleicht die Attribute einfach erneut ab. Falls jedoch die Mailboxen schon für eine bestimmte OU verschoben wurden, ergibt sich bei der erneuten Ausführung des Attributabgleichs das Problem, dass das Attribut „msExchRecipientDisplayType“ wieder auf „MailUser“, anstatt von „Mailbox“ oder „Ressourcenpostfach“ gesetzt wird. Die EMC nimmt dadurch an, dass es sich nur um einen Kontakt handelt und kann die Eigenschaften nicht mehr anzeigen – obwohl die Mailbox immer noch im Hintergrund vorhanden ist. Falls dies dennoch passiert sein sollte, dann müssen die folgenden beiden Attribute wie folgt definiert werden:

Reguläre Postfächer eines Benutzerobjekts:

  • „msExchRecipientDisplayType“ von „-2147483642“ auf „1073741824“ ändern
  • „RecipientTypeDetails“ von „128“ auf „1“ ändern

Ressourcenpostfach (Raum):

  • „msExchRecipientDisplayType“ von „-2147481850“ auf „7“ ändern
  • „RecipientTypeDetails“ von „128“ auf „16“ ändern

Ressourcenpostfach (Equipement):

  • „msExchRecipientDisplayType“ von „-2147481594“ auf „8“ ändern
  • „RecipientTypeDetails“ von „128“ auf „32“ ändern

Diese Anpassung wird durch die Ausführung des PS-Befehls „new-moverequest“ automatisch vorgenommen und muss wie gesagt nur dann manuell stattfinden, falls das Tool zweimal dieselbe OU bearbeiten würde, obwohl die Mailboxen schon verschoben wurden…

Weitere Informationen zu den Attributen liefern die folgenden beiden Links:

Hinweis: Unter Exchange 2003 gab es noch keine Ressourcen-Postfächer für Räume und Equipment – deshalb muss bei der Ausführung des Tools unbedingt der Parameter „/2003“ verwendet werden, sofern die Source-Umgebung eine Exchange 2003-Organisation ist. Dabei werden die entsprechenden Attribute im AD einfach ignoriert und nicht repliziert. Falls der Parameter vergessen wird, stürzt das Script ab, da diese Attribute im Schema von Exchange 2003 noch nicht vorhanden sind.

Hinweis: In der ersten Phase der Tool-Ausführung werden die Attribute der Objekte in der Zieldomäne (Suchpfad angegeben mit dem Parameter „BaseDN“) mit den Attributen der Objekte in der Quelldomäne abgeglichen. Jedes verarbeitete Objekt schreibt einen Powershell-Befehl in eine Powershell-Scriptdatei (Batch), welche dann nach dem Attributabgleich aufgerufen werden kann (automatisch der manuell). Er dieser Move-Request, der im PS aufgerufen wird, verschiebt die Mailboxen dann auf die neue Exchange-Umgebung. Dabei werden im Anwendungs-Protokoll standardmässig zwei Einträge geloggt:

  • 1102 (Mailbox Replication Service): Start des Verschiebevorgangs für Objekt X
  • 1107 (Mailbox Replication Service): Ende des Verschiebevorgang für Objekt X

Der Verschiebevorgang selbst besteht jedoch aus mehrren Phasen. Jede Phase (bei erfolgreicher Beendigung), erstellt auch einen Logeintrag, sofern das Logging-Level erhöht wurde. Die kann unter der Verwendung des folgenden Befehls gemacht werden:

Get-EventlogLevel -Identity „MSExchange Mailbox Replication\*“ | Set-EventlogLevel -Level Expert

Wenn dies wieder ausgeschaltet (zum Standard wiederhergestellt) werden soll, muss einfach das Wort „Expert“ mit „Lowest“ ersetzt werden.

Somit ergeben sich die folgenden Log-Einträge:

  • 1102 (Mailbox Replication Service): Start –> der Status wird auf MOVING gestellt
  • 1104 (Mailbox Replication Service): Mailbox in der alten Umgebung wurde geöffnet und Replikation gestartet (Kopie!)
  • 1105 (Mailbox Replication Service): Mailbox-Replikation (Kopie-Erstellung) wurde erfolgreich abgeschlossen –> Der Status wird auf COMPLETING gestellt
  • 1109 (Mailbox Replication Service): Die inkrementelle Replikation wurde erfolgreich abgeschlossen (d.h. es werden nach der vollen Replikation, welche länger dauern kann im Anschluss nochmals diejenigen Objekte (Mails, Kalendereinträge, etc.) repliziert, welche während der vollen Replikation reingekommen sind)
  • 1106 (Mailbox Replication Service): Die Mailbox wurde in der Quellorganisation gesperrt – der Benutzer erhält im Outlook eine Meldung (sofern er Online ist), dass er doch bitte Outlook schliessen und neu starten soll. Damit arbeitet er dann automatisch in der neue Umgebung.
  • 1107 (Mailbox Replication Service): Ende –> der Status wird auf COMPLETED gestellt

Hinweis: Falls der Log-Eintrag 1106 nicht erscheint und der Mailbox Replication Service abstürzt (Error 4999 Exchange Common, ArgumentOutOfRange), dann kann dies an zwei (oder mehr) Dingen liegen:

  • Ein Postfach in der Quelldomäne ist korrupt – in diesem Falle das korrupte Postfach in der Zielorganisation unter den Mailkontakten wieder gelöscht werden. Um welches sich handelt, kann der Ereignisanzeige gemäss der obigen Logeinträge entnommen werden. Erst wenn dieses wieder entfernt wurde, laufen andere (saubere Objekte) wieder korrekt ab…
  • Die Quellpostfachdatenbank ist korrupt und muss repariert werden. Dies kann mit den folgenden Befehlen bewerkstelligt werden (zuvor muss jedoch die Postfachdatenbank Dismounted werden):

exchsrvr\bin\isinteg -s <servername> -fix -test alltests
ESEUTIL /G <databasename.edb>

Weitere Informationen zum zweiten Spezialfall gibt es unter diesem Link: http://blogs.dirteam.com/blogs/davestork/archive/2010/02/17/mailbox-replication-service-unexpectedly-quits-when-moving-mailboxes-from-other-exchange-server.aspx

Hinweis: Bei der Migration von Ressourcenpostfächern (Room oder Equipment) werden die relevanten Attribute vom Tool übernommen und abgeglichen. Der MoveRequest kann diese jedoch u.U. wieder zurücksetzen, so dass beim öffnen der Eigenschaften eines Ressourcenpostfachs eine Fehlermeldung erscheint die besagt, dass nicht alle Attribute vorhanden sind (v.a. der Type kann nicht bestimmt werden). In diesem Falle muss über ADSIEdit.msc ODER über ADUC im Attribut-Editor folgendes angepasst werden:

  • msExchResourceMetaData muss auf den Wert „ResourceType:Room“ (bei Räumen) oder „ResourceType:Equipment“ (bei Equipment) gesetzt werden
  • msExchResourceSearchProperties muss auf den Wert „Room“ (bei Räumen) oder „Equipment“ (bei Equipment) gesetzt werden

Hinweis: Sollten die Mailobjekte in der Quellorganisation Sonderzeichen beinhalten, dann sollten Sie den folgenden Beirag dringend beachten: http://pflaum.org/blog/?p=469

Weitere Erklärungen bietet die Help des Tools, welches unter der regulären CLI (CMD) gestartet wird:

*************************************************************************
*************************************************************************
*************************************************************************
*************************************************************************
****          CrossOrgMailboxMover 1.2 by iTrain GmbH 2010           ****
****                          www.itrain.ch                          ****
*************************************************************************
*************************************************************************
*************************************************************************
*************************************************************************

DESCRIPTION:

Move the user mailboxes from a source domain to another Exchange
organization, after syncing the necessary attributes to the target domain
After creating the necessary user object attributes in the destination
domain, the tool will prepare a PowerShell-script, which will process the
move process itself. The tool will start the PowerShell-script auto-
matically or you can decide to start it manually yourself.
You’ll find the most actual information about this tool and the process
itself under the following link: http://pflaum.org/blog/?page_id=315

PREREQUISITES:

A source domain running Exchange 2003 or higher and a target domain, whic
is running Exchange 2010. You need to run this script on a Exchange serve
2010 in the destination domain. If the source organization is running und
Exchange 2003 you need to specify the parameter ‚/2003‘ as mentioned belo

Further you need to have an existing trust relationship between the two
domains or forests in which the Exchange organizations resides.

Furthermore, the 64-bit version of the powershell.exe MUST be placed in
the same directory, as the CrossOrgMailboxMover-Tool during execution.
This ist just a prerequisite, if you like to start the PS-script
automatically by the tool itself. If you start it manually after script
script execution, this is not necessary.

ATTENTION: You will find the right version of the powershell.exe-file in
           the directory ‚winsxs‘ in your os-dir. It’s NOT the exe in the
           Wow64-directory!!!
PARAMETERS:

– BaseDN:     Specifies the base distinguished name (DN) for the move
              process of the user mailboxes (i.e. OU=Usr,DC=domain,DC=com
              NOTE: This DN should be in the TARGET domain!
– SrcServer:  Specifies the preferred source domain controller to use
              during the script
– DstServer:  Specifies the preferred destination domain controller to us
              during the script
– SrcDomain:  Specifies the name of the source domain (e.g. oldcorp.com)
– DstDomain:  Specifies the name of the destination domain (e.g. newcorp.
– DstMailDom: Specifies the mail domain in the destination domain
              (e.g. newcorp.com)
– DstOrgName: Specifies the name of the destination Exchange organization
              (e.g. ‚First Organization‘)
– DstMailDB:  Specifies the name of the destination mailbox database, if
              like to move the mailboxes within preparing the destination
              organization.
– 2003:       If the source Exchange organization is under the version 20
              you need to specify this parameter (without any values), so
              the attributes of ressource mailboxes wouldn’t be moved.
              NOTE: Ressource mailboxes were not available in this versio
                    of Exchange.

                     INFO: The mailboxes will be moved over to the destin
                    Exchange organization. Be shure, to make a backup of
                    all your datas before and create the correct connecto
                    and MX-records in advance! You still can decide, whet
                    you like to finalize the process before the move proc
                    or if you just like to prepare the attributes just be
                    it will be done with your confirmation!
EXAMPLES:

CrossOrgMailboxMover /BaseDN:“OU=Usr,DC=dom,DC=com“
                     /SrcServer:“olddc.olddomain.com“
                     /DstServer:“newdc.newdomain.com“
                     /SrcDomain:“olddomain.com“
                     /DstDomain:“newdomain.com“
                     /DstMailDom:“newdomain.com“
                     /DstOrgName:“My New Exchange Organization“
                     /DstMailDB:“NewMailboxDB“

*************************************************************************

Download-Link:

Dieser Inhalt ist registrierten Members vorenthalten - das kostet nichts und ich sende auch keine SPAM-Mails! Ich möchte Dich lediglich bitten, mir Deinen realen Namen anzugeben - halt so wie im echten Leben, wenn man sich vorstellt. Die Freischaltung erfolgt automatisch! Ich behalte mir jedoch vor, Fake-Registrationen ohne Kommentar zu löschen. Die einzige Gegenleistung für viel Content ist also lediglich \"Fair-play\" ;-D... Bitte melde Dich an um den gesamten Beitrag lesen zu können.
Bitte registrieren Sie sich als Member, um den Download-Link zu erhalten. Die Registration ist kostenlos und dient lediglich dazu, damit ich weiss, mit wem ich es zu tun habe ;-D.

VN:F [1.9.22_1171]
Rating: 9.0/10 (4 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)
CrossOrg Mailbox Mover 1.20, 9.0 out of 10 based on 4 ratings

54 Gedanken zu “CrossOrg Mailbox Mover 1.20

  1. Hi,
    ich habe das Tool erfolgreich eingesetzt und möchte mich bedanken. Mir ist da eine blöde Sache passiert: Ich habe das Programm ein weiteres Mal über die gleiche OU drübergejagt (ja, das steht in der Doku ;-)) und danach anhand der Doku die Attribute der betroffenen Benutzer wieder gerade gebogen. Leider wurde das Attribute "ExternalSMTPAddress" nicht gelöscht, sodass die Mailboxen keine Mails mehr empfangen haben (Mailloop). Geholfen hat ein Disconnect und Reconnect der Mailbox. Grüsse myrko

  2. Hallo André,

    leider verweist der Link ins Leere. Hast du das Skript noch online? Danke und Gruß,

    Ralf

Schreib einen Kommentar