IOREPL EXCHSYNC - InterOrg Replication Tool

Bitte lesen und Verstehen Sie auch Verbinden von Organisationen bezüglich Mailrouting, Adressen und Kontakte etc.

Seit Exchange 2010 wird IOREPL auch mit Exchange 2010 SP1 unterstützt
http://technet.microsoft.com/en-us/library/ff728623.aspx.
http://blogs.technet.com/b/exchange/archive/2011/03/28/iorepl-and-exchange-2010-sp1.aspx
Beachten Sie
RPC Encryption auf dem Mailboxserver (nicht CAS !) abschalten, da IOREPL gegen den MB geht.
RPC Throttling beachten, nicht dass IOREPL "gebremst" wird. MailboxDB auf gleichem Server wie Public Folder. Eine Seite muss Exchange 2003 sein

Microsoft Exchange Server Inter-Organization Replication
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=E7A951D7-1559-4F8F-B400-488B0C52430E

Der Einsatz des Internet Replication Tool auf Exchange 2007 wird unterstützt
http://technet.microsoft.com/en-us/library/ff728623.aspx

Exchange Server Supportability Matrix
http://technet.microsoft.com/en-us/library/ff728623.aspx
Beschreibt auch IORepl Umgebung

Für Frei/Belegt-Zeiten versucht der Exchange 2007/2010 CAS-Server per Autodiscover die anderen Server zu erreichen. Wenn die Gegenseite Exchange 2003 ist, müssen Sie mit "Add-AvailabilityAddressSpace" die Domäne auf die öffentlichen Ordner umlenken (Siehe Frei/Belegt Zeiten) und E2007 Kalender Fed

Die Exchange Organisation ist die logische Grenze der Daten, die in Exchange verwaltet und übertragen werden. Es ist problemlos möglich, innerhalb einer Organisation die öffentlichen Ordner zu replizieren, Frei/Belegt-Zeiten anzuzeigen und gemeinsame Adressen zu nutzen. Allerdings gibt es auch immer wieder den Fall, dass mehrere Firmen miteinander enger in Kontakt treten müssen und zwei Exchange Organisationen haben. So stellt sich die Frage, wie in diesem Fall Daten besser ausgetauscht werden können.

IORepl leistet in diesem Fall die Funktion, den Inhalt von öffentlichen Ordnern als auch der Frei/Belegt-Zeiten zwischen Organisationen abzugleichen.

Achtung
Damit das Tool z.B. Frei/Belegt-Zeiten abgleicht, müssen die entsprechenden Postfächer der Quelle im Ziel als Kontakt mit der primären SMTP-Adresse der Quelle angelegt sein. Nur diese Frei/Belegt-Zeiten werden im Ziel angelegt.

Hierzu ist ein Verzeichnisabgleich, sei es manuell, mit eigenen Skripten über CSVDE, LDIFDE, Exchange Administrator oder anderen Tools oder Metadirectory Dienste oder den ADC zur Verbindung unterschiedlicher Organisationen erforderlich. Siehe auch Verzeichnisabgleich, ADC Interorg und Metadirectory

Support

Ursprünglich war IOREPL ein Programm für Exchange 2003. Mit jeder neuen Exchange Version war die Supportfunktion von IOREPL erst einmal offen. Aber einige Wochen oder Monate danach wurde der Support immer wieder darauf ausgedehnt. Im Februar 2011 waren folgende Dinge wichtig:

Das bedeutet aber nicht, .dass IOPEPL vielleicht nicht auch mit anderen Versionen funktioniert. Es ist nur eben nicht gestestet und supportet.

öffentliche Ordner

Interessant ist aber auf jeden Fall der Austausch von Informationen in ausgewählten öffentlichen Ordnern. Dies könnte zwar auch per NNTP durchgeführt werden, aber speziell zu dem Zweck gab es von Microsoft auf jeder Exchange 2000 CD das Programm, welches aus einem Dienst und einem Konfigurationsprogramm besteht. Mittlerweile ist dies ein Download:

Microsoft Exchange Server Inter-Organization Replication
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=E7A951D7-1559-4F8F-B400-488B0C52430E

Diese Programm verbindet sich per MAPI mit beiden Servern in beiden Organisationen und synchronisiert die eingestellten Ordner. Die Funktion des Programms ist weitgehend selbsterklärend. Die Probleme sind allerdings immer auf MAPI zurück zu führen. Es muss diesem System möglich sein, beide Exchange Server per MAPI zu erreichen. Die meisten Probleme machen daher naturgemäß die Firewalls und die Namensauflösung.

Als ersten Schritt sollten Sie sich daher in beiden Organisationen einen eigenen Benutzer anlegen, der die notwendigen Rechte zur Anmeldung und die Zugriffsrechte auf die Ordner hat. Dann ist es an der Zeit die Funktion dieses Benutzers zu prüfen, in dem per MAPI ein Zugriff auf die Ordner kontrolliert wird. Bis dahin handelt es sich rein um die übliche Outlook Kommunikationsproblematik.

Erst dann sollten sie anfangen und den Dienst installieren und konfigurieren. Die Anleitung von Microsoft ist hier recht ausführlich und diverse KB-Artikel helfen über die Probleme hinweg.

Frei/Belegzeiten

Eine kleine Besonderheit ist die Möglichkeit, die Frei/Belegt Zeiten zwischen den Organisationen zu übertragen. Dazu liest IOREPL diese Informationen aus einer Organisation aus und sucht einen entsprechenden Kontakt in der anderen Organisation. Die SMTP-Adresse ist dabei der Schlüssel. Gibt es einen entsprechenden Kontakt, dann kopiert IOREPL auch den Datensatz dieses Benutzers in den anderen Ordner. Outlook ist so intelligent, auch für Kontakte nachzusehen, ob es eventuell einen entsprechenden Datensatz gibt.

Das gleiche Verfahren nützt auch der Notes Calendar Connector, um die Terminpläne aus Notes Systemen in Exchange bereit zu stellen.

Damit auch Outlook 2007/2010 in der Exchange 2007/2010 Umgebung über den Availibility-Service für die Domain die öffentlichen Ordner nutzt, sollten Sie Exchange auch noch den Hinweis dazu geben:

Add-AvailabilityAddressSpace `
   -ForestName <Domainname> `
   -AccessMethod PublicFolder

Installation

Die Installation des Interorg Replication Tools ist auf verschiedenen Webseiten und letztlich auch dem Word-Dokument im Downloadpaket umfangreich beschrieben. Um Fehler zu vermeiden müssen Sie wissen, dass das Programm per MAPI auf beide Exchange Welten zugreift und daher Namensauflösung Berechtigungen etc. wichtig sind. Hier eine kurze Stichpunktliste:

Beschreibung Status

Windows 2003 SP3 32bit Server
Eine Installation auf Windows 2008, Vista oder gar Windows 7 ist nicht möglich, da die Exchange 2003 AdminTools nicht installierbar sind. Ein Betrieb auf Windows XP dürfte möglich sein, aber habe ich nicht weiter getestet. Eine Installation auf einem Exchange 2003 Server ist nicht ratsam.

PC sollte Mitglied ein einer Domain sein
Innerhalb der Konfiguration von IOREPL werden zwar explizit Benutzernamen und Kennworte eingegeben, aber die Verwaltung ist doch einfacherer, wenn der PC in einer Domäne ist.

Kein Outlook, keine CDO
Es gibt immer wieder Hinweise, dass man sich die Exchange 2003 AdminTools sparen kann, wen man einfach Outlook oder die MAPI/CDO für Server installiert. Das mag manchmal funktionieren aber supportet ist nur der Einsatz mit der CDO aus den Exchange 2003 AdminTools.

CAS und Mailbox auf einem Server
Als Exchange 2003 aktuell war, gab es keine Trennung von CAS und Mailbox und eine MAPI Verbindung hat sich immer direkt auf den Postfachserver verbunden. Seit Exchange 2010 greifen Clients nur auf CAS-Server oder Arrays zu. Einzige Ausnahme bleibt der Zugriff auf öffentliche Ordner, der immer noch direkt an den Mailboxserver geht, auf dem die Public Folder liegen. Und das stört IOREPL. Sie müssen also auf dem Server, auf dem die öffentlichen Ordner liegen auch mindestens eine Mailboxdatenbank mit dem IOREPL-Postfach anlegen unddieser Datenbank sagen, dass der RPC-Server eben nicht ein eventuell vorhandenes CAS-Array ist. Ansonsten finden sie im IOREPL-Logfile folgende Warnung

WARNING: Logon to server [ex.CAS.msxfaq.de] has been redirected to server [EX-MBS]. This redirection may cause failure to logon to MAPI sessions. Refer to KB article <826449> and change the configuration file.

RPC-Encryption
ähnlich wie bei Outlook 2003 mit Exchange 2010 nutzen auch die alten Exchange 2003 CDO-DLLs noch keine Verschlüsselung. Sie müssen also zumindest auf dem CAS/MB-Server, gegen den IOREPL arbeitet, die RPC-Encryption abschalten.

Set-RpcClientAccess `
   -Server Exchange_server_name `
   -EncryptionRequired $False

Public Folder Rechte und Systemordner "ExchSyncSecurityFolder"
Damit IOREPL arbeiten kann, müssen Sie natürlich dem IOREPL-Postfach die erforderlichen Rechte auf die zu replizierenden Ordner geben. Weiterhin müssen Sie auf der Wurzel einen Ordner "ExchSyncSecurityFolder" anlegen. Gibt es diesen Ordner nicht bzw. kann IOREPL diesen Ordner nicht sehen, dann stoppt das Programm. Ich denke das ist ein Schutz gegen Personen, die IOREPL ohne Rücksprache mit dem Administrator einrichten.

Danach können Sie IOREPL einfach installiere, was nach kurzer Zeit in einer Dateistruktur mit Programmen und Daten endet:

Konfiguration

IOREPL besteht aus zwei Programme EXSSRV.EXE und EXSCFG.EXE. Mit dem Programm EXSCFG.EXE erstellen Sie eine Konfigurationsdatei, in der die beiden Exchange Organisationen, die Anmeldekonten und auch die zu replizierenden Ordner hinterlegt sind. Diese binäre Datei hat die Erweiterung ESC. Zuerst die Liste Liste leer, aber nach der Konfiguration der Profile sind diese dann hier sichtbar:

Jedes Profil enthält zuerst die Informationen über die Quelle und das Ziel und weitere Button verzweigen aus eine Zeitplanung, eine Protokollierung und natürlich die Auswahl der zu replizierenden Ordner.

Bei der Anzeige der Ordnerliste sehen Sie auch direkt, ob die Anmeldungen korrekt eingegeben wurde. Hier müssen Sie dann natürlich die gewünschten Quell und Zielordner auswählen, die Optionen aktivieren und dann die Partnerschaft addieren

Die Optionen bedeuten:

  • Subfolders
    Es werden auch die unterordner repliziert
  • Deletions
    Werden in einer Seite Elemente oder Ordner (!) gelöscht, dann werden diese auch im Ziel gelöscht
  • Default
    Mit dieser Option werden im Ziel "READ"-Rechte als Default gesetzt
  • Anonymous
    Mit dieser Option werden im Ziel "READ"-Rechte für Anonymous gesetzt

Gerade das Setzen von Rechten nutze ich hier nie, sondern überlasse es dem Administrator im Ziel, die Rechte zu setzen oder bei einer Migration mit PFDavAdmin/ExFolders zu übernehmen.

Sie können übrigens in einer Partnerschaft keine Ordner überlappend eintragen, d.h. ich kann nicht \Ordner1 -> \Ordner1 mit unterordnern replizieren und dann eine zweite Partnerschaft für \Ordner1\Sub1\ einrichten. Eine entsprechende Fehlermeldung wird direkt ausgegeben:

Allerdings könnten Sie in zwei verschiedenen Partnerschaften eine solche Partnerschaft einrichten. Das führt aber letztlich zu Schleifen, wenn Partnerschaft 1 eine Element von der Quelle in das Ziel schreibt und Partnerschaft 2 die Änderungen in Ziel der ersten Partnerschaft wieder zurück schreiben will.

Über die "Scheduling"-Option können Sie steuern, wie oft das Profil ausgeführt wird

Allerdings können Sie die Wiederholung nicht unter 5 Minuten einstellen. Eine "Just-In Time"-Synchronisation ist also schon aus dem Grund nicht möglich und da IOREPL seriell alle Ordner abläuft und Daten überträgt, erhöht sich die Latenzzeit natürlich weiter. Die Replikation ist also definitiv nicht "Realtime"

Dienst einrichten und einstellen

Nachdem Sie alle Einstellungen durchgeführt habe, starten Sie EXSSRV, welche erst erkennt, dass er noch nicht als Dienst installiert ist und ihnen daher den Install-Button anzeigen.

Bei der Einrichtung wird natürlich ein Benutzernamen für den Dienst samt Kennwort abgefragt.

Dies muss nicht einer der Benutzer sein, die in den IOREPL-Verbindungen verwendet wird. Danach ändert sich das Fenster derart, dass aus dem "Install"-Button ein "Remote"-Button wird. Interessanter ist daneben aber der Start/Stop-Button. Wenn der Dienst gestartet wird, dann sehen Sie pro Verbindungsvereinbarung die statistischen Daten.

Das Programm EXSSRV.EXE startet ohne Parameter einfach eine GUI, mit der Sie das Programm selbst als Dienst einrichten und den Status des laufenden Dienste überprüfen können. Bei der Einrichtung wird nach einem Benutzernamen gefragt, mit dem der Dienst selbst laufen soll und die ESC-Datei, welche als Konfiguration dient. Der Dienst startet nur die in der Konfiguration hinterlegten Profile zu den eingestellten Zeiten.

Funktionsweise von IOREPL

Intern nutzt IORepl die MAPI, um über Incremental Change Synchronization (ICS) http://msdn.microsoft.com/en-us/library/aa142535(v=exchg.65).aspx nach Änderungen zu suchen und diese in das Ziel zu übertragen. Den letzten Status (quasi einen Cookie) speichert IORepl dann in der Datei "exsync0.dat"

  • IOREPL mit aktivierten „Deletion“ löscht nicht nur Messages, sondern auch Ordner abhängig von der Direction. !!. Dies muss beachtet werden, wenn in der Quelle die Ordner gelöscht würden. Dies würde den Ordner im Ziel löschen, was ungeschickt ist, wenn IOREpl zur Migration verwendet wird
  • IOREPL unidirektional und Änderungen im Ziel
    Die Änderungen im Ziel bleiben erhalten
  • IOReplOrdner Berechtgungen
     nimmt keine Berechtigungen mit. Es kann aber „Default“ und ���Anonym“ im Ziel setzen. für die Berechtigungen sind PFDavAdmin, ExFolders oder PowerShell zuständig

Hier eine kleine Auflistung, was in welchen Fällen passiert. Basis war ein Exchange 2007 Quellserver und ein Exchange 2010 Zielserver mit einer unidirektionalen Replikation von Quelle zum Ziel. Laut Microsoft ist diese Konfiguration schon nicht mehr supportet, da eine Seite immer ein Exchange 2003 sein muss. Eine Bidirektionale Replikation lief in der TestUmgebung auf Fehler ( ICS Object kann nicht konfiguriert werde, "Unable to initialize ICS Collector 0x8004005 "). Insofern bleibt ein Restrisiko. Die Tests gelten für die Replikation von Exchange 2007->2010, aber dürften auch für 2003->2010 zutreffen.

Test

Ergebnis

Status

Anlegen Element in A
Ordner in A anlegen

Wird in B angelegt

OK

Löschen Element in A

Wird in B gelöscht

OK

ändern Element in A

Wird in B geändert

OK

Anlegen Element in B
ändern Element in B

Bleibt in B erhalten
Nicht in A

Split

Löschen Element in B

In nur in B gelöscht
(Getestet an einem Termin)

Split

Element aus A wird in A und B geändert

A überschreibt B

OK

Element in A geändert und in B gelöscht.

Element wird in B wieder angelegt

OK

Basis Ordner in A löschen
Basis Ordner in A umbenennen
Basis Ordner in B löschen
Basis Ordner in B umbenennen

Fehler im Logfile, Replikation für die Relation gestoppt

Achtung

SubOrdner in A umbenennen

Ordner wird in B umbenannt

OK

SubOrdner in A löschen

Ordner wird in B gelöscht

OK

SubOrdner in B umbenennen
SubOrdner in B löschen.

Ordner wird NICHT erneut angelegt, selbst wenn unterelemente in A addiert werden. Kein Fehler im Eventlog

Achtung

Konfiguration:

\ordner1 -> \ded\ordner1
\ordner1\sub1 <-> \ded\ordner1\sub1

IOREPL pflegt „Ordnersätze“. Dabei ist keine Verschachtelung beim Mapping möglich.

Beachten

Neueinrichtung der Konfiguration mit Entfernen der Statusdatei: exsync0.dat

Ordner und Elemente werden nicht doppelt angelegt. Scheinbar ist im Ziel eine MAPIID o.ä. gesetzt, dass IORepl das Objket wieder findet.

OK

Kontakte

Ordner werden im gleichen Format angelegt, Inhalte ebenfalls übertragen

OK

Aufgaben

Ordner werden im gleichen Format angelegt, Inhalte ebenfalls übertragen

OK

Termine

Ordner werden im gleichen Format angelegt, Inhalte ebenfalls übertragen

OK

Andere Produkte für Free/Busy und Termine, z.B. Quest Collaboration Suite

IOREPL wird offiziell mittlerweile nicht mehr nur mit Exchange 2003 sondern auch Exchange 2007 und Exchange 2001 SP1 unterstützt. Der Zugriff auf "Free/Busy-Zeiten zwischen Exchange 2007 Organisationen ist ja allein über die CAS-Server und den Consierge-Service möglich. Ab Exchange 2010 ist es sogar möglich, in Kalender anderer Organisationen zu schauen. Aber Dritthersteller springen natürlich in die Bresche und bieten Zusatzprodukte an. So gibt es die "Quest Collaboration Services", welche eine abgespeckte Version der Migration Suite ist. Auch wenn die Software nicht kostenfrei ist, so ist sie durchaus eine Überlegung wert, da Sie mehrere Funktionen abdeckt:

  • DirSync
    Das Programm übernimmt die Aufgabe des Verzeichnisabgleich zwischen Organisationen, die Sie ansonsten per MiniSync oder anderen Tools aufbauen müssten
  • Granulares Free/Busy
    Während IOREPL immer alle Free/Busy Zeiten repliziert, für die es einen entsprechenden Kontakt im Ziel gibt, kann Quest steuern, welche Frei/Belegt-Zeiten auch in der anderen Organisation bereit gestellt werden
  • KalenderSync
    Wer mit Exchange 2003 und älter mehr als nur "Free/Busy" bereit stellen will, kann sogar auf der anderen Seite quasi "Postfachmailboxen" anlegen und die Kalender dort hin replizieren lassen. Die Benutzer der anderen Organisation können dann sogar "in die Kalender" schauen und die Details anzeigen. Allerdings sind hierbei natürlich Datenschutzüberlegungen erforderlich. Meine Version hat jedem "Reviewer"-Recht gegeben, was sicher kritisch zu sehen ist.

Sie sollten aber auch wissen, dass diese Funktion quasi der Einstieg in die Migration Suite ist, welche genau die gleichen Funktionen enthält und um die Replikation von Postfächern enthält, was die Migration von Postfächern zwischen Organisationen unterstützt.

IORepl, Besitzer/Creator und Berechtigungen

IORepl hat noch nie Berechtigungen mit übernommen. Es war also bisher immer eine Aufgabe des Administrators, die Berechtigungen auf Ordnern von der Quelle in das Ziel zu übertragen. Das kann z.B. per PFDavAdmin oder Exfolders passieren. Sie müssen nur die Export-Dateien vor dem Import anpassen (Domänenname Alt durch Neu ersetzen etc.) oder schreiben sich ihre kleinen PowerShell-Skripte. Bei einem Problem kann ihnen aber auch eine korrekt gesetzte Berechtigung nicht helfen. Die Standardrechte auf öffentlichen Ordnern sehen nämlich wie folgt aus, bzw. könnten so eingestellt sein:

Ich habe hier die neuralgischen Einstellungen schon rot gekennzeichnet. Anwender dürfen ihre eigenen Objekte jederzeit ändern und löschen. Dies ist eine durchaus übliche Einstellung auch für öffentliche Kalender.

Nun kommt aber IOREPL und kopiert die Inhalte in die ZielUmgebung. Das Problem dabei ist, dass IOREPL in der ZielUmgebung nun als "Creator" eingetragen wird. Die Inhalte sind damit zwar schön enthalten, aber die eigentlichen "Inhaber" können die Elemente nicht mehr verändern oder löschen. Es sind zumindest im Ziel ja nicht mehr die eigenen. Allerdings kann der Mitarbeiter natürlich "neue" Elemente, die er in dem Ordner anlegt auch wieder verändern oder löschen.

Die korrekte Lösung wäre, wenn IOREPL den Creator entsprechend setzt. Das macht IOREPL aber nicht. Einzige "schnelle Abhilfe ist die Anpassung der Berechtigungen von "Autor" auf "Editor", wobei dann natürlich alle Personen mit den Berechtigungen die Einträge der anderen Benutzer verändern und löschen können.

Fehlersuche, Debugging

Die Suche nach Fehlern mit IORepl ist nicht gerade einfach. IORepl läuft als Dienst und meldet Warnungen und  Fehler im Application-Eventlog des Servers. Zudem kann bei der Konfiguration ein "Logfile" angelegt werden.

Die Fehlersuche ist aber dennoch erschwert, da IORepl nur wenige Informationen in eine Logdatei ablegt und auch im Eventlog nur minimal protokolliert. Debugview zeigt keine Ausgabe und in RegEdit sind keine Debug-Optionen sichtbar. Insofern ist offen, welche Möglichkeiten es noch gibt, um IORepl bei Fehlern mehr Details zu entlocken.

Weitere Links