Sweep-Rules

Eher zufällig bin ich über die Exchange Commandlets "*-SweepRule" gestolpert. Neugierig habe ich etwas recherchiert und eine ganz nützliche Funktion entdeckt, die man aber wohl nur in Outlook Web App mit dem eigenen Exchange Postfach nutzen kann.

Problem

Auch wenn die meiste Kommunikation mittlerweile über Microsoft Teams per Chat, in den Kanälen oder in Meetings erfolgt, ist mein Posteingang immer noch eine wichtige Informationsdrehscheibe. Unzählige Statusmeldungen über erfolgreiche Datensicherungen, Berichte von Firewalls, Kontobewegungen der Bank oder andere "Erfolg"- und "Fehler"- Benachrichtigungen landen hier und nicht alle "löschen" ich nach Kenntnisnahme, sondern verschieben sie in einem Ordner. Vieleicht muss ich später ja noch mal nachschauen oder danach suchen.

Aber bislang muss ich eben auch jede Mail verschieben und es gibt sicher auch bei ihnen solche Mails, die das System durchaus automatisch verschieben kann aber bitte nicht sofort. Eine einfache "Posteingangsregel" wäre da kontraproduktiv, da dann die Mail direkt im jeweiligen Ordner landet und Sie diese gar nicht mehr sehen.

Lösung

Hier kommen dann die "Sweep-Rules" zum Einsatz, die in der deutschen Übersetzung einfach nur "Aufräumen" genannt wurden. Etwas unschön ist dabei, dass Sie solche Regeln aktuell (Anfang 2022) weder in Outlook noch auf dem Mobilgerät sehe, sondern nur über Outlook Web Access unter https://outlook.office365.com. Wenn Sie dort ihrem Posteingang öffnen und so eine Mail anklicken, dann finden Sie oben die "Aufräumen"-Funktion:

Damit legen Sie eine "Sweep-Rule" für diesen Absender an. Als einziger Filter für die Anwendung einer Sweep-Rule ist auch nur der Absender möglich. Sie können also nicht weiter z.B. nach Texten im Betreff oder Body filtern. Für den Absender haben Sie dann die Auswahl von vier Optionen:

  • Ich kann alle Nachrichten von dem Anwender einmalig in den angegeben Order verschieben
    Achtung: Der Standardorder ist "Gelöschte Elemente". Aber schon das ist sehr hilfreich, um auf einen Schlag alle Mails eines Absenders einmalig zu löschen oder einen anderen Ordner zu verlagern.
    Diese Aktion wird nur einmal ausgeführt und legt keine SweepRule an!
  • Alte und zukünftige Nachrichten in den Ordner verschieben
    Diese Funktion entspricht dann wieder den klassischen "Regeln", die quasi sofort aktiv werden.
  • Alle Nachrichten außer die Neueste verschieben
    Das ist aus meiner Sicht eine sehr nützliche Funktion, um z.B. wiederkehrende Mails automatisch zu verarbeiten, bei den die jeweils letzte Mail eigentlich wichtig ist und die vorherigen Mails quasi nur noch archiviert werden.
  • Älter 10 Tagen verschieben
    Wenn die eine letzte Mail doch zu wenig ist, könnte diese Option eine Lösung sein. Alles älter 10 Tage wird quasi archiviert.

Nur die beiden letzten Optionen sind richtige "SweepRules". Ich nutze z.B. die dritte Option z.B. für die täglichen/wöchentlichen Berichte der Firewall. Ich möchte diese Bericht nicht löschen aber mich interessiert nur der letzte Tag. Wenn ich mehrere Tage nicht meinen Posteingang bearbeite, dann übersehe ich natürlich die älteren Berichte. Aber ich bin ja nicht der einzige Empfänger dieser Reports und z.B. eine Meldung über einen alten Softwarestand ist in der Folgemeldung auch sichtbar.

Nachdem ich die Regel angelegt hat, zeigt mir Outlook Web Access erst einmal eine Bestätigung an:

Sie sehen aber auch, dass die Verarbeitung nun "asynchron" erfolgt. Danach kann ich über "Regeln anzeigen" direkt in den Einstellungen, wo ich die neue Regel und bestehende Aufräum-Regeln sehen, deaktivieren oder löschen:

An die Stelle komme ich natürlich auch über die normalen Einstellungen, die sich oben rechts unter dem Zahnrad verbergen.

Diese Regeln liegen im Exchange Postfach auf dem Server und werden vom Server zyklisch ausgeführt.

Powershell

Die Einstellungen der Regeln kann ich als Benutzer natürlich auch per PowerShell verändern. Die meisten Anwender werden diese Funktion natürlich nicht nutzen, denn schon der Anblick einer PowerShell wirkt für diese Personen abschreckend und eine Verbindung zu Exchange oder Exchange Online muss auch erst einmal hergestellt werden.

Das gilt aber nicht für Administratoren, die über die PowerShell z.B. die Sweep-Regeln in einem Benutzerpostfach die Regeln anzeigen und ändern können.

Dazu benötigen Sie natürlich die entsprechenden Managementrollen. In Exchange Online sind folgende Rollen für Set-Sweeprule mit dem Parameter "Mailbox" berechtigt:

Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline


$perms= Get-ManagementRole -Cmdlet set-sweeprule -CmdletParameters mailbox
$Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-Table -Auto Role,RoleAssigneeType,RoleAssigneeName}

Role            RoleAssigneeType     RoleAssigneeName
----            ----------------     ----------------
MyTextMessaging RoleAssignmentPolicy Default Role Assignment Policy


Role            RoleAssigneeType     RoleAssigneeName
----            ----------------     ----------------
Mail Recipients RoleGroup            Organization Management
Mail Recipients RoleGroup            Recipient Management
Mail Recipients RoleGroup            OnMicrosoft Admin Only


Role         RoleAssigneeType        RoleAssigneeName
----         ----------------        ----------------
User Options RoleGroup               Help Desk
User Options RoleGroup               Organization Management

Die Berechtigungen für New-SweepRule ist z.B. nicht der "Default Role Assignment Policy" zugewiesen.

$perms= Get-ManagementRole -Cmdlet new-sweeprule -CmdletParameters mailbox
$Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-Table -Auto Role,RoleAssigneeType,RoleAssigneeName}

Role            RoleAssigneeType RoleAssigneeName
----            ---------------- ----------------
Mail Recipients RoleGroup        Organization Management
Mail Recipients RoleGroup        Recipient Management
Mail Recipients RoleGroup        OnMicrosoft Admin Only


Role         RoleAssigneeType RoleAssigneeName
----         ---------------- ----------------
User Options RoleGroup        Help Desk
User Options RoleGroup        Organization Management

Die eigentliche Regeln hat folgende Einstellmöglichkeiten. Hier einfach die Ausgabe der gerade angelegten Regel:

PS C:\> Get-SweepRule | fl

RunspaceId        : <guid>
Identity          : Carius, Frank \xxxxxxxxxxxxx==
Name              : Nachrichten von Firewall Notification System
Provider          : Exchange16
RuleId            : xxxxxxxxxxxxx==
SourceFolder      : Posteingang
DestinationFolder : Firewall
SystemCategory    :
Sender            : "utm@msxfaq.de" [SMTP:utm@msxfaq.de]
KeepForDays       :
KeepLatest        : 1
Enabled           : True
InError           : False
ExceptIfFlagged   : False
ExceptIfPinned    : False
MailboxOwnerId    : Carius, Frank
IsValid           : True
ObjectState       : Unchanged

Natürlich gibt es noch die weiteren Commandlets, um neue Regeln anzulegen, bestehende Regeln zu ändern, deaktivieren, aktivieren.

Weitere Links