Bad mails happen in the best of families. Sometimes it's a virus, or an email that shouldn't have been sent.
Exchange Server offers the possibility to delete mails from mailboxes. It can be very useful to know how to do this, especially in the event of SPAM or virus waves. This article applies to Exchange 2010, 2013 and 2016.
Here is a small example:
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"
Alternatively, a universal group from the Active Directory can also be specified, so other users only need to be assigned to the corresponding AD group:
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
The screenshot above is from Exchange 2016, here a small warning is displayed that only 10000 items per mailbox are delivered, Exchange 2010 does not bring this warning.
The e-mail disappears from Hans' mailbox a short time later:
If a SPAM or virus mail has been sent to many mailboxes, all mailboxes can be searched at the same time.
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
If you want to be on the safe side and don't want to delete the emails immediately, you can also display the search results first:
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:
Excel can then be used to evaluate the CSV file and, if necessary, adjust the search parameters accordingly