MSXFAQ MeetNow aktiv: Komm doch einfach dazu.

EXO MailPublicFolder Reste

Ein Kunde möchte einer Shared Mailbox in Exchange Online eine Mailadresse geben, die aber angeblich durch einen E-Mail-aktivierten öffentlichen Ordner belegt wird. Dabei hat der Kunde gar keine öffentlichen Ordner in der Cloud. Was liegt hier quer?

Ausgangslage

Der Kunde wurde von Exchange 2016 OnPremises über eine klassische Hybrid-Bereitstellung zu Exchange Online migriert. Mittels ADSync wurden dazu die lokalen Identitäten in Entra ID und Exchange Online angelegt. Früher vorhandene OnPremises Öffentliche Ordner wurden in dem Zuge in Shared Mailboxen überführt und dann lokal komplett entfernt. Eine Migration von Öffentlichen Ordnern zu Exchange Online wurde nicht durchgeführt. Dann wurden alle Postfächer mit einem Move-Request in die Cloud verschoben. Zuletzt wurde die Verwaltung auf IsExchangeCloudManaged umgestellt, damit die lokale Umgebung für Exchange keine Funktion mehr hat. Die lokalen Exchange Server wurden dann bis auf den letzten Server deinstalliert. Der letzte Server wurde heruntergefahren. Soweit ist es eine einfache Standard-Migration.

Public Folder in Exchange Online

Allerdings wusste Exchange Online davon erst einmal nichts und war immer noch überzeugt, dass es lokale Public Folder geben könnte und eine Migration einfach noch nicht gestartet wurde. Sie können das in der Exchange Online PowerShell mittels "Get-OrganizationConfig" einfach überprüfen:

Auch Exchange Online meines DEV-Tenants, geht von OnPremises öffentlichen Ordnern aus und die Migration ist immer noch möglich.

ADSync-Reste

Beim Kunden war es aber so, dass anscheinend früher einmal durch ADSync auch die "MailPublicFolder" als Empfänger nach Entra ID repliziert wurden. Es gab in Exchange Online neben den klassischen Empfängern auch "MailPublicFolder".

Bei der näheren Untersuchung haben wir ermittelt dass diese Ordner gar nicht "DirSynched" waren, sondern den Status "CloudOnly" hatte. Auch wenn die Vorgeschichte nicht mehr lückenlos geklärt werden konnte, hatte ich den Verdacht, dass es vielleicht früher schon mal Gehversuche mit Office 365 gegeben hat und eine andere ADSync-Installation die damals noch vorhandene lokalen AD-Objekte in den Tenant repliziert haben und dann der DirSync (siehe auch  Dirsync aus- und einschalten) deaktiviert wurde. Damit werden alle Objekte in der Cloud zu "CloudOnly"-Objekte und wenn ich dann nicht wieder einen neuen ADSync installiere, der die Objekte "Matched", dann wird auch später die lokale Bereinigung nicht in Exchange Online nachgezogen.

Genau diese verwaisten MailPublicFolder hatten nun eine Mailadresse, die der Kunde gerne an eine Shared Mailbox angewendet hätte.

Disable-MailPublicFolder Fail

Wir hatten dann erst einmal gedacht, dass wir die Ordner einfach mit einem "Disable-MailPublicFolder" löschen könnten. Wir haben es zuerst mit dem Namen oder der Mailadresse versucht aber am Ende haben wir und sogar die Liste der Ordner mit "$pf=Get-MailPublicFolder" gezogen, um sicher die Identity übergeben zu können. Der Fehler war aber immer der gleiche

Obwohl ich mit einem "Get-MailPublicFolder" das Objekt im Exchange Online Directory finde kann ich es nicht löschen. Anscheinend prüft oder fragt Exchange Online auch nach dem öffentlichen Ordner in einer Public Folder Mailbox, um dort das "IsMailenabled"-Flag zu entfernen. Da ich aber in Exchange Online keine öffentlichen Ordner habe und OnPremises auch keine Ordner vorhanden sind, gelingt dies nicht.

Wir haben die vermutliche Ursache gefunden aber keine Lösung. Die MailPublicFolder waren auch nicht mit Entra ID, AzureAD-PowerShell oder Microsoft Graph beizukommen.

Temporärer Fix

Der nächste Schritt wäre wohl ein Ticket bei Microsoft gewesen. Aber wir konnten die Objekte zwar nicht löschen aber wir konnten die Objekte verändern. Das eröffnete uns den Weg, einfach die Mailadressen abzuändern, so dass die eigentliche Adresse frei wurde. Als haben wir dem Ordner erst einfach eine andere Mailadresse gegeben, die niemand verwendet

Get-MailPublicFolder <Name> `
| Set-MailPublicFolder `
     -PrimarySMTPAddress <freieadresse> `
     -EMailAddresses <freieadresse>

Danach konnten wir dann die nicht mehr von diesem Ordner blockierten Mailadressen an die schon wartende SharedMailbox addieren.

Das Problem hatten wir damit zumindest umschifft.

Finale Lösung

Wir wollten aber natürlich auch noch die Altlasten beseitigen. Es gibt im Exchange Online Verzeichnis noch die Verweise auf E-Mail-aktivierte öffentliche Ordner, dies nicht mehr durch einen DirSync verwaltet werden aber auch nicht gelöscht werden können. Ein Lösungsweg wäre nun, im lokalen AD wieder neue Mail-aktivierte öffentliche Ordner so anzulegen, dass Entra ID-Connect/ADSync diese auf die bestehenden Objekte matched und Sie dann lokal wieder zu löschen. Allerdings hatte ich ja die lokalen Exchange Server schon komplett entfernt und mit ADSIEDIT wollte ich solche Objekte nun doch nicht anlegen.

Die Lösung hat sich dann doch einfacher darstellt, indem wir Exchange Online mitgeteilt haben, dass es gar keine öffentlichen Ordner mehr gibt und auch keine Migration mehr erforderlich ist.

Set-OrganizationConfig `
   -RemotePublicFolderMailboxes $Null `
   -PublicFoldersEnabled None  

Damit haben wir Exchange Online mitgeteilt, dass es keine Öffentlichen Ordner mehr gibt.

Danach konnte wir die MailPublicFolder allerdings noch immer nicht löschen und verschwunden sind sie auch nicht von alleine. Allerdings war hier einfach etwas Geduld gefordert. Ca. 48 Stunden konnten wir ohne Fehler folgenden Befehl in der Exchange Online PowerShell absetzen:

Get-MailPublicFolder | Disable-MailPublicFolder

Danach waren die verwaiste MailPublicFolder-Elemente komplett weg und die dadurch blockierten Mailadressen konnten anderweitig verwendet werden.

Weitere Links