Böse Mails kommen in den besten Familien vor. Mal ist es ein Virus, oder eine Mail die so nicht hätte abgeschickt werden sollen.
Exchange Server bietet die Möglichkeit Mails aus Postfächern zu löschen. Gerade bei SPAM oder Virenwellen, kann es sehr nützlich sein, zu wissen wie es geht. Dieser Artikel trifft auf Exchange 2010, 2013 und 2016 zu.
Hier mal ein kleines Beispiel:
Hans hat eine „böse Mail“ bekommen die nun aus seinem Postfach gelöscht werden soll
Um die Mail zu löschen, muss als Erstes die entsprechende Berechtigung vergeben werden, in diesem Fall bekommt der Benutzer „Administrator“ die Rechte Postfächer zu importieren und exportieren, dieses Recht umfasst auch das Löschen von Mails innerhalb des Postfachs.
New-ManagementRoleAssignment -Name "Import Export Mailbox Adminstrator" -User "Administrator" -Role "Mailbox Import Export"
Alternativ lässt sich auch eine Universelle Gruppe aus dem Active Directory angeben, so müssen andere Benutzer nur der entsprechenden AD Gruppe zugeordnet werden:
New-ManagementRoleAssignment -Name "Import Export Mailbox Users" -SecurityGroup "Exchange Mailbox Import Export" -Role "Mailbox Import Export"
Nachdem das Recht zugewiesen wurde, muss die Exchange Managemet Shell einmal neu gestartet werden, da sonst das CMDLet „Search-Mailbox“ nicht zur Verfügung steht.
Jetzt kann die „Böse Mail“ gelöscht werden:
get-mailbox hans | search-mailbox -SearchQuery "böse mail" -DeleteContent
Der Screenshot oben stammt von Exchange 2016, hier wird eine kleine Warnung angezeigt, dass nur 10000 Elemente pro Postfach geliefert werden, Exchange 2010 bringt diese Warnung nicht.
Die Mail verschwindet kurze Zeit später aus dem Postfach von Hans:
Bei einer SPAM- oder Virenmail die an viele Postfächer geschickt wurde, können auch gleich alle Postfächer durchsucht werden.
In diesem Beispiel werden alle Postfächer nach einer Mail mit dem Betreff „Test“ durchsucht und entsprechende Mails gelöscht:
get-mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery "subject:'test'" -DeleteContent
Die Such lässt sich natürlich auch noch weiter verfeinern. Hier zum Beispiel alle Postfächer in der Datenbank „DB2016“ von administrator@frankysweb.de mit dem Betreff „Test“:
get-mailbox -Database DB2016 -ResultSize unlimited | Search-Mailbox -SearchQuery "subject:'test' -and from:'administrator@frankysweb.de'" -DeleteContent
Wer auf Nummer sicher gehen will und die Mails nicht sofort löschen will, kann sich auch die Ergebnisse der Suche erst einmal anzeigen lassen:
get-mailbox hans | search-mailbox -SearchQuery "test" -LogOnly -TargetFolder Suche -TargetMailbox administrator -LogLevel FULL
Mit dem Befehl werden die Suchergebnisse im Postfach des Benutzers „Adminsistrator“ im Ordner „Suche“ gespeichert. Im Anhang der Mail findet sich eine CSV-Datei mit den entsprechenden Ergebnissen:
Mit Excel lässt sich die CSV-Datei dann auswerten und gegebenenfalls Parameter der Suche entsprechend anpassen