Exchange: Geisterpostfächer endgültig entfernen

Heute bin ich auf ein außergewöhnliches Problem gestoßen: Geisterpostfächer. Doch lasst mich das Problem etwas näher beschreiben. Am Exchange waren Postfächer vorhanden, die im eigentlichen Sinne gar keine funktionstüchtigen Postfächer mehr waren. Das AD-Objekt war nicht mehr vorhanden und sie ließen sich auch nicht mit dem Befehl „Get-Mailbox“ auswerten. Nur über eine Abfrage der Mailbox-Statistiken auf Datenbanklevel brachte sie zum Vorschein. Da ich genau wusste, nach welchen ehemaligen Postfächern ich suchen musste, konnte mir der folgende Befehl bei der Suche helfen.

[PS] C:\Windows\system32>$dbs = Get-MailboxDatabase
[PS] C:\Windows\system32>$dbs | foreach{Get-MailboxStatistics -Database $_.Name | where {$_.Displayname -like "*test*"} | select Identity, Displayname, TotalItemSize, Database, Disconnect*}


Identity         : d7e6d88b-a905-4a6a-bf7d-270b64e734f3
DisplayName      : Test User01
TotalItemSize    : 4.795 GB (5,148,164,291 bytes)
Database         : DB14
DisconnectDate   :
DisconnectReason :

Identity         : c0265cf0-8935-419a-921c-107095aa908b
DisplayName      : Test User02
TotalItemSize    : 4.04 GB (4,337,656,320 bytes)
Database         : DB15
DisconnectDate   :
DisconnectReason :

Identity         : 9fdeb360-933f-4c5c-be2a-4f20141df548
DisplayName      : Test User03
TotalItemSize    : 4.713 GB (5,060,934,314 bytes)
Database         : DB15
DisconnectDate   :
DisconnectReason :

Identity         : 277b608e-69e3-49c7-9be8-2e0123cdddb7
DisplayName      : Test User04
TotalItemSize    : 10.9 GB (11,700,122,189 bytes)
Database         : DB16
DisconnectDate   :
DisconnectReason :

Wenn man allerdings nicht genau weiß, wie beispielsweise der Displayname gesetzt war, gibt es keine einfache Möglichkeit, solle Postfächer ausfindig zu machen. Das Problem ist, dass diese auch nicht automatisch vom Exchange nach Ablauf der Retention Policy gelöscht werden, da sie weder einen DisconnectDate noch DisconnectReason besitzen. Das bedeutet, dass sie immer den entsprechenden Speicher in der Datenbank belegen werden, da sie für den Exchange vollwertige Mailboxen sind.

Normalerweise lassen sich getrennte Postfächer mit dem Befehl „Remove-StoreMailbox“ problemlos entfernen und den Datenbankspeicher freigeben. In diesem Fall funktioniert das allerdings nicht, da die Mailbox für den Exchange nicht getrennt war. Daher lief das CMDLET auch in einen Fehler:

[PS] C:\Windows\system32>Remove-StoreMailbox -Identity d7e6d88b-a905-4a6a-bf7d-270b64e734f3 -Database DB13 -MailboxState Softdeleted

The mailbox "d7e6d88b-a905-4a6a-bf7d-270b64e734f3" isn’t disconnected
    + CategoryInfo          : NotSpecified: (:) [Remove-StoreMailbox], ManagementObjectNotFoundException
    + FullyQualifiedErrorId : [Server=EX0401,RequestId=7f221125-935c-4713-9584-5971fd32bf5e,TimeStamp=28.06.2021 12:48:57] [FailureCategory=Cmdlet-ManagementObjectNotFoundException] 95C8F437,
   Microsoft.Exchange.Management.StoreTasks.RemoveStoreMailbox
    + PSComputerName        : ex0401.test.local

Glücklicherweise verfügt der Befehl „Remove-Mailbox“ über den Parameter „StoreMailboxIdentity“ mit welchem man eigentlich funktionstüchtige Postfächer direkt und unwiederbringlich löscht:

[PS] C:\Windows\system32>Remove-Mailbox -StoreMailboxIdentity d7e6d88b-a905-4a6a-bf7d-270b64e734f3 -Database DB14

Confirm
Are you sure you want to perform this action?
Removing mailbox "d7e6d88b-a905-4a6a-bf7d-270b64e734f3" on database "DB14".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"): y

Somit konnten die Geisterpostfächer entfernt und der Speicherplatz innerhalb der Datenbanken wieder freigegeben werden.

You may also like...

Abonnieren
Benachrichtige mich bei
guest
0 Comments
Inline Feedbacks
View all comments
0
Hinterlass' doch deine Meinung zu diesem Artikelx