Exchange: Mails aus Postfächern löschen

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

image

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"

image

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:

image

image

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

image

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:

Mails aus Postfächern löschen

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:

image

Mit Excel lässt sich die CSV-Datei dann auswerten und gegebenenfalls Parameter der Suche entsprechend anpassen

image

12 Kommentare zu “Exchange: Mails aus Postfächern löschen”

  1. Erhalte unter Exchange 2010 folgende Fehlermeldung beim Befehl New-ManagementRoleAssignment -Name „Import Export Mailbox Users“ -SecurityGroup „Exchange Mailbox Import Export“ -Role „Mailbox Import Export“:
    Es wurde keine Sicherheitsgruppe mit dieser Identität gefunden: „Exchange Mailbox Import Export“.
    + CategoryInfo : NotSpecified: (0:Int32) [New-ManagementRoleAssignment], ManagementObjectNotFoundExceptio
    n
    + FullyQualifiedErrorId : 223C0142,Microsoft.Exchange.Management.RbacTasks.NewManagementRoleAssignment
    + PSComputerName : servername-exchange2010

  2. Hallo,

    geht dies zufälligerweise auch mit fehlerhaften Kontakte-Verteilern bzw. Kalendereinträgen, die man in Outlook nicht löschen kann?

  3. Wenn ich eine E-Mail global anhand eines Absenders löschen möchte, erhalte ich immer „Das Eigenschaftsschlüsselwort wird nicht unterstützt“. Ist hier ein subject auch Pflicht? Das Ganze tritt unter Exchange 2010 SP3 mit dem aktuellem UR auf.

  4. Hallo!

    Du schreibst bei Punkt 1:

    In diesem Beispiel werden alle Postfächer nach einer Mail mit dem Betreff „Test“ gelöscht:
    get-mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery „subject:’test'“ -DeleteContent

    jetzt meine Frage: Hast du dich verschrieben oder werden wirklich „alle Postfächer“ gelöscht? Das wäre ja der Supergau! Ich bräuchte den Befehl jetzt, traue mich dadurch aber nicht ihn auszuführen.

    1. Hi Tim,
      hier handelt es sich natürlich um einen Schreibfehler meinerseits. Nicht die Postfächer werden gelöscht, sondern die Mails innerhalb der Postfächer :-)
      Gruß, Frank
      PS: Habe es korrigiert.

  5. Hallo Frank,
    hat funktioniert. Das Mail ist nach dem Aktualisieren verschwunden aber jedoch kurze Zeit später wieder da?!
    Bei mir handelt es sich um eine Mail in welcher man im Anzeigefenster (rechts) nichts sieht außer dem Vermerk „Kein Betreff“. Links in der Auflistung steht jedoch im Betreff: „wedding dresses“ und als Empfänger „Stoian Radichev“. Es wird auch die Klammer für einen Anhang angezeigt.
    Haben Sie hierfür eine Lösung?

  6. Kleiner Nachtrag, weil es mich heute eine Stunde meines Lebens gekostet hat:
    Auf einem „deutschen“ Exchangeserver auf einem „deutschen“ Windowsserver müssen im searchquery deutsche Begriffe benutzt werden.

    Aus -searchquery „Subject: Test“ wird dann -searchquery „Thema: Test“.

    Außerdem werden abschließende Sonderzeichen als Whitespaces verworfen. Wir hatten einen Fall, dass ca. 500 Mails mit „bösen“ Links durchgerutscht sind. Die Mails hatten einen Betreff in der Form „Bill-nnnnnn“, Wir konnten nur dann alle Mails löschen, als wir
    (Bill-0* OR Bill-1* OR [to be contiued by you :-)] OR Bill-9*)
    als searchquery benutzt haben.

    Damit keine historischen Mails gelöscht werden, empfiehlt es sich als zusätzliches Kriterium ein „AND Empfangen:“ mit dem Tagesdatum der durchgerutschten Mails hinten dranzuhängen.

  7. Hallo Frank und Mitleser :-)

    Hast Du (Ihr) auch zufällig eine Lösung für folgendes parat:
    Nach Umzug von Postfächern (EX2010) in eine neue DB festgestellt, daß die Postfächer fast die gleiche Größe haben.
    Outlook über VPN eingerichtet und Ordnergrößen auf Server kontrolliert -> 25 GB in Synchronisierungsprobleme -> Konflikte (der Chef dort bastelt selbst viel).
    Jetzt lädt mir das Outlook ja nur die eigenen Konflikte aber nicht die, die im Exchange in der DB drin sind.
    Gibt es eine Möglichkeit (Powershell?) die ganzen, alten Konflikte zu löschen?
    Danach sollen die PF bereinigt in eine neue DB.

    Danke & Gruß
    Mario

  8. Hallo Frank,

    ich habe die Datenbank und somit alle Postfächer nach der betroffenen E-Mail durchsucht und gelöscht. Direkt danach ist die E-Mail auch nicht mehr per Suche in der Datenbank nicht mehr auffindbar. Nach einer gewissen Zeit tauchen die Mails jedoch wieder auf, obwohl ich direkt den Weg über die Datenbank gegangen bin. Gibt es hier noch einen Ansatz, wo ich weiter machen kann?
    Vielen Dank und mach weiter so.

    Gruß Tim

  9. Erstmal vielen Dank für die tolle Beschreibung hier.

    Ich möchte auf eine Exchange 2013 in allen Postfächern nach dem Betreff „Re: 2,000,000.00 Euro“ suchen.
    Dazu habe ich zum testen erstmal folgende Abfrage versucht:

    get-mailbox | search-mailbox -SearchQuery „subject:’Re: 2,000,000.00 Euro'“ -LogOnly -TargetFolder Suche -TargetMailbox „Administrator“ -LogLevel FULL

    Leider liefert das ganze keine Ergebnisse, kann es sein, dass ich bei den „Sonderzeichen“ etwas beachten muss ?
    Habe auch schon folgendes, leider auch erfolglos versucht:
    -SearchQuery „subject:’Re`: 2`,000`,000`.00 Euro'“

    Gruß
    Florian

  10. Hallo Frank,

    Ja es ist ein deutscher Exchange.
    Habe das auch schon versucht, führt leider auch zu keinen Ergebnissen…
    ich danke, es liegt irgendwie an den Sonderzeichen…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.