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.
- Get-OrganizationConfig
https://learn.microsoft.com/en-us/powershell/module/exchangepowershell/set-organizationconfig
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.
- Disable-MailPublicFolder
https://learn.microsoft.com/en-us/powershell/module/exchangepowershell/disable-mailpublicfolder
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.
- Get-MailPublicFolder
https://learn.microsoft.com/de-de/powershell/module/exchangepowershell/get-mailpublicfolder - Set-MailPublicFolder
https://learn.microsoft.com/de-de/powershell/module/exchangepowershell/set-mailpublicfolder
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.
- Set-OrganizationConfig
https://learn.microsoft.com/en-us/powershell/module/exchangepowershell/set-organizationconfig
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
- ADSync und Public Folder
- Exchange Migration mit Office 365
- Öffentliche Ordner
- öffentliche Ordner - Strukturen
- Öffentliche Ordner - Eigenschaften
- IsExchangeCloudManaged
- Set-OrganizationConfig
https://learn.microsoft.com/en-us/powershell/module/exchangepowershell/set-organizationconfig - Get-MailPublicFolder
https://learn.microsoft.com/de-de/powershell/module/exchangepowershell/get-mailpublicfolder - Set-MailPublicFolder
https://learn.microsoft.com/de-de/powershell/module/exchangepowershell/set-mailpublicfolder - Use batch migration to migrate legacy public folders to
Microsoft 365 or Office 365
https://docs.microsoft.com/en-us/exchange/collaboration-exo/public-folders/batch-migration-of-legacy-public-folders















