EXO und MailboxGUID
Im Hybrid-Mode ist es wichtig, die MailboxGUID einer OnPremises Mailbox auch zu Exchange Online zu synchronisieren, damit EXO auch weiß, dass dieser Benutzer eine lokale Mailbox hat. Ansonsten kann es passieren, dass Exchange eine zweite Mailbox anlegt. (Siehe auch Doppelpostfach mit Exchange Online). Wenn Sie aber Postfächer direkt als "RemoteMailbox" anlegen, dann vergisst Exchange und ADSync aktuell etwas. Das stört spätestens bei der Rückreplikation. Hier gibt es die Details:
Der Fehler war im Feb 2020 noch nicht behoben. Aus meiner Sicht müssten die Commandlets "New-RemoteMailbox/Enable-RemoteMailbox" das fehlende Feld setzen. Ersatzweise könnte ADSync das Feld aus der Cloud in das lokale AD replizieren.
msExchMailboxGuid im AD
Bei Exchange OnPremises ist die MailboxGUID der Klebstoff, um das AD-Konto des Benutzers mit dem Postfach in der Postfachdatenbank zu verbinden. Sie können den Inhalt einfach mit Get-ADUser oder Get-Mailbox auslesen.
PS C:\> get-aduser user1 -Properties msexchmailboxguid DistinguishedName : CN=user1,OU=Abteilung,DC=msxfaq,DC=de Enabled : True GivenName : User1 msexchmailboxguid : {150, 78, 78, 3...} Name : User1 ObjectClass : user ObjectGUID : 9cd53e78-9de4-4a9a-abc0-6062b56ac545 SamAccountName : user1 SID : S-1-5-21-11949449-30417519-71842111-9813 Surname : Carius UserPrincipalName : user1@msxfaq.de
Da die msexchmailboxguid ein Array mit 16 Bytes ist, ist die Ausgabe natürlich abgeschnitten. Mit der Exchange PowerShell finden Sie neben der MailboxGUID auch noch die ArchivGUID
[PS] C:\>get-mailbox user1 | fl *guid* ExchangeGuid : 034e4e96-4332-5abc-4b39-8e4776468178 MailboxContainerGuid : AggregatedMailboxGuids : {} ArchiveGuid : 00000000-0000-0000-0000-000000000000 DisabledArchiveGuid : 00000000-0000-0000-0000-000000000000 Guid : 9cd5223a-9bb4-432a-abc0-6062ab45c545
Weitere Details habe ich auf anderen Seite schon beschrieben:
- msExchMailboxGUID bzw. MailboxGUID
- Fix-MailboxGuid
-
Wipe-Mailbox
Wer die GUID im lokalen AD ändert, startet mit einer neuen Mailbox - Understanding Mailbox GUIDs
http://technet.microsoft.com/en-us/library/aa996437(EXCHG.65).aspx
Unter "Weitere Links" gibt es Verweise auf andere Seite im Internet, die verschiedene Probleme.
MailboxGuid und Exchange Online
Auch in Exchange Online nutzt Microsoft den gleichen Code und so hat auch ein Postfach in Exchange Online eine MailboxGUID und einen passenden Benutzereintrag. Die Information können Sie recht einfach über die Exchange Online PowerShell auslesen.
PS C:\> get-mailbox fctest* | ft name,alias,database,exchangeGUID,archiveguid Name Alias Database ExchangeGuid ArchiveGuid ---- ----- -------- ------------ ----------- fctest1 fctest1 NAMPR20DG007-db027 6ed75be1-04c3-459c-9c1f-d2ab8d93220e 00000000-0000-0000-0000-000000000000 fctest2 fctest2 NAMPR20DG219-db112 dd7dcb39-b12f-4673-a7ee-01f3f13a1935 00000000-0000-0000-0000-000000000000 fctest3 fctest3 NAMPR20DG047-db096 4b6a3d89-c1b3-43e6-a5ed-5c7ee6450ce9 00000000-0000-0000-0000-000000000000 fctest4 fctest4 NAMPR20DG129-db114 00c1bd6c-9278-4986-9371-544fb8c36f85 00000000-0000-0000-0000-000000000000 fctest5 fctest5 NAMPR20DG140-db096 175cba6b-2c76-4722-b358-57ab14b034ec 00000000-0000-0000-0000-000000000000 fctest6 fctest6 NAMPR20DG050-db096 265cbd56-b238-473f-8902-b4c9859ad3b1 00000000-0000-0000-0000-000000000000
Exchange Online unterscheidet sich also gar nicht so stark von Exchange OnPremises.
MailboxGuid und ADSync
Sobald aber Exchange im Hybrid-Mode genutzt wird, kommt ADSync als Abgleich eine wichtige Rolle zu. Alle Informationen über Postfächer in der lokalen Exchange Installation müssen durch ADSync auch zu Exchange Online übertragen werden. ADSync Version 1.4.32.0 (Nov 2019) hatte folgende "Synchronization Rules" für das Feld msExchMailboxGUID:
- Inbound
Auf dem lokalen AD wird das Feld in das Metaverse importiert, wenn es sich um einen "User" oder "InetOrgPerson" handelt.
Sie sehen aber auch, das es kein "Inbound" von Exchange Online gibt. Das Feld ist unidirektional - Outbound
Aus dem Metaverse wird das Feld dafür zu Exchange Online geschrieben aber nicht zurück ins lokale Active Directory
Diese Einstellung bestätigt die Aussage, dass eine MailboxGUID nicht von Exchange Online zurück in das lokale Active Directory repliziert wird.
Diese Verhalten kann "unerwartet" sein, wenn sie z.B. Exchange Online nutzen wollen und die Benutzer durch ADSync schon repliziert werden aber eine frühere unsauber entfernte Exchange Installation nicht die Felder bereinigt hat.
Hinweis: Wenn Sie Exchange lokal früher installiert und dann "geregelt" entfernt haben, kann es dennoch passieren, dass Reste im lokalen AD beim Benutzer übrig geblieben sind.
Wenn einer der Reste eine MailboxGUID bei einem AD-Konto ist, dann kann dieser Benutzer kein Exchange Postfach erhalten
Lokale Alt-Installation mit msExchMailboxGUID verhindert Exchange Online Mailbox
Exchange Online nutzt nämlich die Existenz einer MailboxGUID als Kriterium, dass der Benutzer ein lokales Postfach hat und daher in Exchange Online keine weitere Mailbox angelegt wird. Nur wenn auch die anderen Exchange Felder wie z.B. msExchRecipientTypeDetails und msExchRemoteRecipientType gesetzt sind.
- ADSync Bidirektional
- Azure AD Connect sync: Attributes
synchronized to Azure Active Directory :
Exchange hybrid writeback
https://docs.microsoft.com/de-de/azure/active-directory/connect/active-directory-aadconnectsync-attributes-synchronized#exchange-hybrid-writeback - Remove msExchMailboxGuid Attribute from AD Sync
https://guides.appriver.com/m/89074/l/1107376-remove-msexchmailboxguid-attribute-from-ad-sync
Ich würde hier aber nicht ADSync Regeln anpassen sondern das Attribute im lokalen AD richtig setzen und das Provisioning anpassen.
MailboxGUID und Remote Mailbox
Es gibt zwei Wege zur Neuanlage eines Postfach in einer Exchange Hybrid Umgebung:
- Anlage als "UserMailbox" und Migration
in die Cloud
Dieser Weg ist natürlich nur möglich, wenn Sie lokal noch eine Exchange Mailboxdatenbank haben und er dauert länger, da auch die Migration etwas Zeit dauert. Dafür ist der Prozess ausgereift und auch viele 3rd Party Tools können die notwendigen Einstellungen korrekt umsetzen - Direktanlage als "RemoteMailbox"
Sie können auch direkt ein Postfach in der Cloud anlegen, indem Sie im lokalen Exchange direkt eine "RemoteMailbox" anlegen.
Wenn sie den Weg über "Remote-Mailbox" nehmen, dann könnte aber eine lokale Ausgabe aller Remote-Mailboxen und deren GUID ein gemischtes Bild zeigen
[PS] C:\>Get-RemoteMailbox | ft exchangeguid,ArchiveGUID ExchangeGuid ArchiveGuid ------------ ----------- 20fdff52-a2e1-46e5-8a4b-9356cb954b96 f8646e03-1cd9-4d43-bb7d-3b1af0bd2516 2a3a17fa-1663-42ea-9b1d-00a5e70f3d28 7d259658-d915-4362-88b6-6a7ad0083c85 f3a929af-8bb2-4d6f-9016-6892fddc4a40 00000000-0000-0000-0000-000000000000 bed2778b-8e12-42c9-ab96-3c048415817e 45ba5bd3-aac2-4c4b-ae79-be1e21fb310c dfd9a676-e3ce-40a5-ac9a-8ce4139bdb06 5666ed3c-b991-42f4-b7aa-6df20551b534 dfa5234a-892f-4263-88aa-b11e9a722de6 66abb8f0-45db-4a20-a427-ae4854d1c3f9 d23b3ab0-637f-44d1-8509-e84886a61d53 d0823f07-b849-4988-9439-78b76adc5fad 00000000-0000-0000-0000-000000000000 00000000-0000-0000-0000-000000000000 00000000-0000-0000-0000-000000000000 00000000-0000-0000-0000-000000000000 00000000-0000-0000-0000-000000000000 00000000-0000-0000-0000-000000000000 00000000-0000-0000-0000-000000000000 00000000-0000-0000-0000-000000000000 f1d3bc15-000d-44cc-87f0-3bdebe292439 9fc50a4c-e380-4422-8814-4847e3e6233e 247208d0-66b1-4c7f-9f07-8c2e2142c2c8 1715f52b-a5d8-4f0e-b116-2b6bbba8505c dfd9a676-e3ce-40a5-ac9a-8ce4139bdb06 5666ed3c-b991-42f4-b7aa-6df20551b534
Sie sehen hier einige Test-Postfächer mit einer Exchange GUID und einer ArchiveGUID aber sie sehen auch Postfächer die eine ArchiveGUID mit dem Wert "00000000-0000-0000-0000-000000000000" haben und es gibt sogar Postfächer deren ExchangeGUID nur "00000000-0000-0000-0000-000000000000" enthält. Hier sind also alle drei Optionen vorhanden.
- Exchange Remote Mailbox in der Cloud mit Archiv, die migriert wurden
- Exchange Remote Mailbox ohne Archiv oder ein Archiv, von dem Exchange OnPremises nichts weiß
- Exchange Remote Mailbox, deren GUIDs die lokale Installation nicht kennt
Das Problem ist tatsächlich real, da das Commandlet "New-RemoteMailbox" auch Anfang 2020 bei der Konfiguration der Exchange Eigenschaften keine GUID vergibt. Das führt dann aber z.B. dazu, dass dieses Postfach nicht mehr aus Exchange Online zurück auf die OnPremises-Umgebung migriert werden kann. Dazu gibt es sogar eigens einen KB-Artikel
- "MigrationPermanentException: Cannot find a recipient that has mailbox GUID "
error message when you try to move a mailbox in an Exchange hybrid deployment
https://support.microsoft.com/en-us/help/2956029/migrationpermanentexception-cannot-find-a-recipient-that-has-mailbox-g
Der Artikel beschreibt aber auch, warum dies der Fall ist und wie Sie dies lösen können. Hier müssen wir dann zwei Fälle unterscheiden:
Fall | Richtige Vorgehensweise |
---|---|
Neue RemoteMailbox anlegen |
Es reicht hier nicht einfach ein "Enable-RemoteMailbox" oder "New-RemoteMailbox" zu machen. Sie müssen auch eine MailboxGUID mitgeben. Enabled-RemoteMailbox <MailboxName> Set-RemoteMailbox <MailboxName> -ExchangeGUID <GUID> |
Unvollständige RemoteMailbox |
Wie auch in meiner Umgebung gibt es sicher viele Firmen, in denen es lokale AD-Benutzer mit Postfach in der Cloud gibt, die aber keine ExchangeGUID lokal haben. Hier sollten Sie dann dafür sorgen, dass Sie die GUID aus der Cloud auslesen und lokal nachpflegen. Sie können dazu einfach die Postfächer in der Cloud mit "Get-Mailbox" in der Exchange Online PowerShell auslesen # Exchange Online PowerShell Get-Mailbox * | select alias,exchangeGUID,archiveguid | export-csv guidliste.csv Mit dieser Liste starten Sie dann eine lokale Exchange Powershell und setzen die Werte. foreach ($entry in (import-csv guidliste.csv) { Write-Host "Processing $($entry.alias) GUID $($entry.ExchangeGUID) Set-RemoteMailbox ` -identity $entry.alias ` -ExchangeGUID $entry.exchangeGUID ` -ArchiveGUID $entry.archiveguid } Bitte prüfen Sie die Funktion erst mit wenigen Objekten. |
- Set-RemoteMailbox
https://docs.microsoft.com/en-us/powershell/module/exchange/federation-and-hybrid/set-remotemailbox?view=exchange-ps
Allerdings frage ich schon schon, warum Microsoft für Exchange 2010/2013/2016/2019 nicht schon lange ein Update für die "*-RemoteMaiilbox"-Commandlets ausgeliefert hat.
Weitere Links
- msExchMailboxGUID bzw. MailboxGUID
- HCW - Hybrid Configuration Wizard
- HCW im Detail
- ADSync Bidirektional
- ADSync mit Exchange Online
- Doppelpostfach mit Exchange Online
- msExchRecipientTypeDetails
- msExchRemoteRecipientType
- Azure AD Connect sync: Attributes
synchronized to Azure Active Directory :
Exchange hybrid writeback
https://docs.microsoft.com/de-de/azure/active-directory/connect/active-directory-aadconnectsync-attributes-synchronized#exchange-hybrid-writeback - Understanding Mailbox GUIDs
http://technet.microsoft.com/en-us/library/aa996437(EXCHG.65).aspx - Remove msExchMailboxGuid Attribute from
AD Sync
https://guides.appriver.com/m/89074/l/1107376-remove-msexchmailboxguid-attribute-from-ad-sync - Enable-RemoteMailbox –ExchangeGuid is
mandatory on UserMailbox
https://martinsblog.dk/enable-remotemailbox-exchangeguid-is-mandatory-on-usermailbox/ - Fixing the "ExchangeGuid is mandatory on
UserMailbox" issue
http://www.mistercloudtech.com/2017/02/06/fixing-the-exchangeguid-is-mandatory-on-usermailbox-issue/ - Error when moving a mailbox to Exchange
online
https://www.msb365.blog/?p=564 - Set ExchangeGuid for user remote mailbox
https://www.adaxes.com/script-repository/update-exchangeguid-for-remote-mailbox-s551.htm