Doppelpostfach mit Exchange Online

Wer Exchange Online ohne passende Provisionierung verwendet, hat sehr schnell zwei Postfächer, die er wieder zusammenführen muss. Diese Seite beschreibt, wie man es falsch macht und danach wieder heilt.

Beachten Sie dazu auch die Seiten Exchange Online Provisioning, ADSync mit Ex Online Only und ADSync mit Exchange

Ausgangssituation

Meine Testumgebung sieht ziemlich genau so aus, wie die meisten Kunde ihre Umgebung betreiben.

  • Lokales Active Directory mit Exchange Schema
  • Lokaler Exchange Server mit Postfächern
  • ADSync mit Exchange Hybrid
    d.h. die Benutzer und Verteiler werden in den Office 365 Tenant repliziert
  • Exchange Online Service aktiviert und Lizenzen vorhanden

Nun schauen wir, was beim Anlegen eines neuen Benutzers so schief gehen kann.

Neues AD-Konto angelegt

Zuerst wird klassische ein Anwender im lokalen AD angelegt. Ich mache das hier mal mit AD-Users und Computers.

Noch hat der Benutzer kein Postfach o.ä. und bekommt auch erst noch mal keines. An das Exchange Team ist aber eine Mail gegangen, dass Sie doch bitte den Benutzer mit einem Postfach versehen. Das ist aber kein Automatismus und dauert etc.

ADSync triggert

Das hindert aber ADSync nicht daran, den Benutzer schon mal in Office 365 anzulegen. Entsprechend finde ich im ADSync-Log den Import aus dem lokalen AD ins Metaverse:

Folgende Felder werden übernommen:

Und beim Export in die Cloud wird der Benutzer angelegt:

Folgende Felder werden dabei in die Cloud exportiert:

Es sind also durchaus ein paar Felder mehr, als importiert werden. Bei nächsten Lauf wird ADSync aber aus der Cloud auch einige Daten wieder importieren und in das lokale Active Directory importieren.

ADSync ist also nicht nur unidirektional.

Cloudbenutzer + Lizenz = Postfach

Der Benutzer soll natürlich auch Cloud-Dienste wie Teams etc. nutzen und bekommt daher eine Office 365 E3 Lizenz. Das kann ein Administrator von Hand machen oder sie nutzen die Funktion der automatischen Lizenzierung. Er hat auf jeden Fall eine Lizenz.

Die Cloud macht nun, was sie mit einem Benutzer anstellt, der einen Lizenz für Exchange Online bekommt aber von OnPremies keine entsprechenden LDAP-Felder mitbekommen hat. Exchange Online geht davon aus, dass der Kunde vielleicht OnPremises kein Exchange hat und verpasst dem Anwender eine Mailbox:

Office 365 nutze dazu auch einfach den UPN als "primäre Mailadresse" und alle Cloud-Anwender können da Postfach umgehend sehen und sogar Mails dorthin senden. Früher konnte sich der Anwender aber nicht anmelden, da Autodiscover ja noch auf den OnPremises-Server verweist und der kennt den Benutzer noch nicht. Mittlerweile ist Outlook aber schlauer und versucht bei einem Fehler der Verbindung zu einen OnPremises-Server immer noch mal eine Anfragen gegen Office 365. Also kann der Anwender arbeiten.

ADSync Rückreplikation

ADSync bemerkt natürlich die neuen Änderungen in der Cloud und wenn ADSync auf für Exchange Hybrid eingerichtet ist, dann repliziert er auch einige Felder in das lokale AD zurück. Auch das ist im Synchronisationsstatus zu sehen. Im Vergleich zur vorherigen Rückreplikation aus Office 356 ins Metaverse sind nun einige weitere Felder hinzu gekommen:

Die haben aber nicht alle etwas mit Exchange zu tun, denn die Cloud hat anscheinend einige weitere Felder in Office 365 angelegt, die nun ins Metaverse kommen. Im lokalen Active Directory kommt nur der CloudLegacyExchangeDN in Form einer Proxy-Adresse an.

Sie könnten also hellhörig werden, wenn ein lokales AD-Objekte plötzlich eine Proxy-Adresse ohne Mailnickname/Alias hat. Eigentlich "darf" es das ja so nicht geben. Per LDAP ist das schnell zu finden.

(&(proxyaddresses=*)(!mailnickname=*))

In meinem Test-Tenant habe ich damit zuverlässig alle CloudOnlyPostfächer in meinem lokalen AD identifizieren können. Das geht natürlich nur, solange ADSync korrekt arbeitet und die OnPremises-Felder auch füllen kann.

OnPremises Postfach

Mittlerweile ist auch der Exchange Administrator bei dem Ticket angekommen und aktiviert den Benutzer für ein Postfach. Würde der Administrator nun ein "Enable-RemoteMailbox" ausführen, dann wäre die Welt in Ordnung, da ADSync als autoritative Instanz die OnPremises-Felder wie Mails, ProxyAddresses etc. in die Cloud repliziert und bestehende Felder überschreibt bzw. erweitert.

Ein Fehler ist es, wenn der Exchange Admin ein "New-Mailbox" ausführt. Dann hat der Anwender eine Mailbox "OnPremises".  Beim nächsten Sync-Lauf importiert ADSync die neuen Exchange Properties in das Metaverse. Es kommen eine MailAdresse und einige "msExch*"-Felder dazu:

Dann werden munter die Daten im Metaverse verarbeitet und am Ende in die Cloud übertragen.

Die Daten werden sogar ohne Fehler in die Cloud repliziert, d.h. es gibt keine Komponente, die aufgrund des bestehenden Konflikts Alarm schlägt

Konflikt

Wenn Sie bis jetzt aber aufgepasst haben, dann sollten Sie das Problem erkannt haben.

  • Exchange Online Postfach
    Durch die Anlage des Benutzers mit ADSync und der Zuweisung einer Lizenz hat der Anwender ein "Exchange Online-Postfach" bekommen
  • OnPremises
    Aber auch auf dem lokalen Exchange Server gibt es ein Postfach mit der identischen Mailadresse.

Der Benutzer hat ein "Split Postfach", welches auch von beiden Seiten erreicht werden kann. Mails, die zuerst von einem beliebigen OnPremises-Server geroutet werden, landen im lokalen Postfach während alle Mails von Absendern in Exchange Online landen im Online-Postfach. Dies ist natürlich kein dauerhafter Zustand und sie sollten das Problem möglichst schnell beseitigen.

Das Problem kann auch auftreten, wenn andere Prozess ähnliche Probleme verursachen, z.B. Filter in ADSync, damit Objekte nicht abgeglichen werden oder eine fehlende Aktivierung des Exchange Hybrid Mode in ADSync. ich hatte es auch schon, dass im Piloten Benutzer manuell im Ziel angelegt und mit einem Postfach versehen wurden und dann mit der Einrichtung von ADSync ein Matching erfolgte. Auch hier bleiben dann zwei Postfächer bestehen.

Ich habe mit dem Skript Compare-GAL eine Möglichkeit geschaffen, mit der sie das globale Adressbuch einer Hybrid-Umgebung prüfen können. Hier sollten dann Dubletten aber auch fehlende Postfächer auffallen.

Lösungsschritte

Die Lösung besteht darin, ein Postfach aufzulösen, so dass nur ein Postfach übrig bleibt. Einfach "löschen" ist aber eine schlechte Idee denn es könnte ja noch wichtige Mails darin sein, die der Anwender noch haben möchte. Ein einfacher Export vor dem Löschen greift aber auch zu kurze, da während des Exports ebenfalls weitere Mails einkommen könnten.

Sie müssen zuerst überlegen, welches Postfach denn das "überlebende Postfach" bleiben soll. In der Regel nutzt man das länger existente Postfach, wenn das zusätzliche Postfach sehr jung ist. Dann ist die zu migrierende Datenmenge geringer.

  • Verbleibendes Postfach "eindeutig" erreichbar machen
    Das Postfach, welches bestehen bleibt, muss auch aus der anderen Welt erreichbar sein. Das kann also nicht die SMTP-Adresse sein, die auch das zu löschende Postfach hat. Wenn Sie ein OnPremises Postfach abschalten wollen, dann ist die mail.<tenantname>onmicrosoft.com-Adresse in der Cloud eine gute Adresse. Wenn Sie die Cloud-Mailbox abschalten wollen, dann schauen Sie nach einer Domain oder Subdomain, die es nur OnPremises gibt
  • Weiterleitung einrichten
    Mit der eindeutigen Routingadresse zum verbleibenden Postfach können Sie nun in dem zu löschenden Postfach als Administrator eine Weiterleitung einrichten. So wird sichergestellt, dass zumindest keine neuen Mails mehr in dem doppelten Postfach ankommt
  • Export der Inhalte
    Ehe wir die Mailbox löschen, sollten wir vielleicht die darin enthaltenen Mails exportieren. Das kann der Anwender per Outlook in eine PST-Datei machen. Sie könnten natürlich auch als Administrator per eDiscovery durchführen. Denkbar ist auch ein Export mit 3rd Party Tools per EWS oder Graph.
  • LegacyExchangeDN aufschreiben
    Dieser Wert sollte später als X.500 Adresse in der verbleibenden Mailbox addiert werden, damit Mails und Termine weiter funktionieren.
  • Entfernen der Mailbox / Anlegen des Mailobjekts
    Im nächsten Schritt geht es dann um das Entfernen der Mailbox und dem Ersetzen durch ein Mailobjekt, welches die Weiterleitung zum richtigen Postfach enthält. Dieser Schritt ist pro Umgebung unterschiedlich.
  • Import der Inhalte
    Die aus dem doppelten Postfach exportierten Elemente können Sie jeder Zeit wieder in die vorhandene Mailbox importieren. Eine PST-Datei können Sie dem Anwender direkt zum Import bereitstellen.

Auf den Prozess des Export/Import gehe ich hier nicht weiter ein.

OnPremises Postfach entfernen

Wenn das OnPremises Postfach verschwinden soll, dann führe ich folgende  Schritte nacheinander aus.

  • Disabled-Mailbox
    Damit nehmen Sie dem lokalen AD-Objekte alle Properties weg aber das AD-Konto zur Anmeldung mit allen Gruppenmitgliedschaften etc. bleibt erhalten
  • Enable-Remote-Mailbox
    Damit aktiviere ich "OnPremises" ein Exchange Objekt, welches auf die Mailbox in Exchange Online über die "mail.<tenant>.onmicrosoft.com"-Adresse verweist. Ich muss natürlich die Proxy-Addresses komplett pflegen, die heute in de Cloud vorhanden oder gepflegt sind
  • LegacyExchangeDN addieren
    Zuletzt addiere ich den LegacyExchangDN der gelöschten Mailbox als X500-Adresse an das neue Mailobjekt

Damit sollte ihre OnPremise Exchange Umgebung wieder glücklich sein und den Empfänger im Adressbuch sehen. Mails an den Empfänger gehen dann aber in die Mailbox in Exchange Online

Exchange Online Postfach entfernen

Wenn das OnPremises Postfach übrig bleiben soll, dann muss ich das Cloud Postfach entfernen. Aus meiner Sicht geht das nur über folgenden Trick:

  • Entfernen der Exchange Online Lizenz
    Die Office 365 E3/E5 u.a. kann er gerne behalten, aber die Einzelkomponenten Exchange Plan 1/2 wird deaktiviert.

    Achtung: ggfls. müssen Sie noch andere Lizenzen temporär entfernen

    Damit "verschwindet" das Exchange Postfach in der Cloud. Es kann allerdings einige Zeit dauern, bis die Mailbox in der Cloud tatsächlich dann auch verschwindet. Diese "Änderung" in Exchange Online wird von ADSync auch bemerkt aber es wird nichts repliziert.
  • "Mailbox-Info" entfernen
    Exchange Online löscht ein Postfach nicht sofort, wenn Sie die Lizenz entfernen, Es könnte ja "aus Versehen" passiert sein. Daher bleibt beim Benutzer immer noch die Information erhalten, dass er ein Postfach gehabt hat. Sobald Sie eine Lizenz innerhalb der 30 Tage "Grace-Period" wieder zuweisen, hat er sein "altes Postfach" wieder. Daher gibt es seit ca. 2018 eine Option diese Information am Benutzer zu entfernen.
Set-User `
   -identity <username> `
   -PermanentlyClearPreviousMailboxInfo

# Permanently Clear Previous Mailbox Info 
#https://techcommunity.microsoft.com/t5/exchange-team-blog/permanently-clear-previous-mailbox-info/ba-p/607619
  • ADSync
    Normalerweise sollte die Cloud nach dem Löschen des Postfachs alleine erkennen, dass der Benutzer nun dank der OnPremises-Eigenschaften ein Mail-Kontakt in Exchange Online ist. Bislang hat das bei mir auch immer funktioniert und ADSync muss dazu auch nicht weiter tun. Wenn sich das Problem aber nicht alleine löst, dann könnte ein voller Abgleich vielleicht helfen.
Start-ADSyncSchedule -PolicyType Initial
  • Lizenz wieder zuweisen
    Wenn das Postfach OnPremises liegt und sie eine normale Exchange User-CAL haben, braucht es auch keine Cloud-Lizenz. Aber viele Firmen lizenzieren CALs schon über die Cloud und wollen vielleicht auch migrieren. Da der Benutzer in der Cloud nun aber ein "Kontakt" ist, wird Exchange Online keine Mailbox aktivieren, wenn ich eine Lizenz zuweise.

Danach sollte es ein sauberes OnPremises Postfach mit einem korrespondierenden Exchange Kontakt in der Cloud geben.

Zusammenfassung

Wer beim Provisioning schludert und eine gewisse Reihenfolge nicht einhält, kann Situationen schaffen, die nicht funktionieren und sich auch nicht selbst wieder heilen. Die vorzeitige Zuweisung eines Exchange Online Plan an ein Cloud-Konto, dessen Exchange Properties nicht gleich mit repliziert wurden oder das unabgestimmte Vorgehen eines OnPremises-Admin führt sehr oft zu Situationen, deren Lösung aufwändig sein kann.

Weitere Links