Manuelles Aufräumen von Exchange Datenbanken

Da unser Exchange 2016 Standard ganz langsam vollläuft, wir keine Datenbanken mehr anlegen können, zum Glück aber am Anfang einer Migration zu Exchange-Online sind, habe ich ein wenig manuell aufgeräumt.

Als erstes schaute ich mir dabei den vorhandenen Datenbank-Whitespace innerhalb der jeweiligen Datenbank an. Hierfür gibts den Powershell-Einzeiler:

Get-MailboxDatabase -status | select name, databasesize, availablenewmailboxspace

Nun wusste ich, um welche Datenbank ich mich primär kümmern sollte. Also gleich mal die Top 50 Postfächer der jeweiligen Datenbank gezogen:

Get-MailboxDatabase %DBNAME% | Get-MailboxStatistics | Sort totalitemsize -desc | ft displayname, totalitemsize, itemcount | Select -first 50 >> C:\top50mailboxes.txt

Anhand der Top 50 dann Rücksprache mit den Abteilungsleitern gehalten, ob die Postfächer überhaupt noch benötigt werden, und falls einzelne nicht mehr benötigt werden, die dazugehörigen Benutzer und somit auch die Postfächer gelöscht. Es dauerte je nach Postfachgröße ein wenig, bis die Postfächer dann als getrennte Postfächer im Exchange angezeigt worden sind. Sobald dies der Fall war, konnte ich mit folgendem Befehl getrennte Postfächer endgültig löschen:

Get-MailboxStatistics -Database "%DBNAME%" | where {$_.DisconnectReason -eq "Disabled"} | foreach {Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState Disabled}