Exchange OnlineOffice 365

Office 365 Auto-Responder | Abwesenheitsnotiz mehr als einmal senden | Automatische Antwort

Auto-Reply in O365 einrichten via Abwesenheitsassistent (OFF)

Leider ist das Einrichten einer automatischen Nachricht im Sinne von „Vielen Dank wir haben Ihre Nachricht erhalten“ nicht optimal gelöst, beziehungsweise nur durch sehr aufwendige Regeln oder teure Zusatzanwendungen möglich. Um ehrlich zu sein verwundert mich, dass diese Funktion standardmäßig nicht gegeben ist, da sie ja doch bei einem normalen IMAP-Postfach auf Basis eines Linux-Mailservers, z. B. Postfix bereits quasi von Haus aus integriert ist. Und viele Provider ermöglichen das Konfigurieren über eine simple WebGUI. Wie gesagt ist das leider sehr nervig.

Die meisten denken jetzt sicherlich als erstes an den Abwesenheitsassistenten welcher für jedes Postfach konfiguriert werden kann, doch da liegt eben der Hund begraben. In Exchange Online sendet der Abwesenheitsassistent lediglich einmal die automatische Antwort pro Absender-E-Mail. Was ja auch durchaus logisch ist, da der OOF-Assistent (Out-of-office) lediglich den Absender über die Abwesenheit informieren soll und das genügt ja in der Regel einmal. Erst durch erneutes Deaktivieren und Aktivieren wird dieser Zustand zurückgesetzt.

Im Folgenden möchte ich einen Lösungsweg vorstellen wie man es mittels einer simplen Aufgabenplanung auf einem Windows-Server oder Client und einem PowerShell-Skript lösen kann. Voraussetzung ist hier natürlich, dass ein Server (oder im Notfall auch Client) permanent erreichbar und aktiv ist und PowerShell „beherrscht“.  

1. Herunterladen des Skriptes und lokal speichern

Sie können das Skript ganz einfach unter folgendem Link herunterladen: Office365AutoReplySkript.zip
Dieses ist als ZIP gespeichert und muss lediglich mit Boardmitteln entpackt werden und kann auf dem Desktop abgelegt werden. Dafür würde sich ein Unterordner auf C: oder einem anderen Laufwerk anbieten oder ein zentraler Pfad für andere Skripte.

2. Anpassen des PowerShell-Skriptes

Damit das Skript sich mit dem Office 365 Tenant verbinden kann benötigt das Skript natürlich entsprechende Zugangsdaten, diese müssen direkt in dem Skript an den bereits vorgegebenen Stellen hinterlegt werden. Anschließend das Skript speichern. Da die Zugänge im Klartext hinterlegt werden sollte keine unbefugten Personen Zugriff auf dieses Skript haben. 

Weitere Anpassungen sind nicht notwendig.

3. Automatische Windows-Aufgabe anlegen

Nun muss das Skript natürlich automatisch ausgeführt werden. Diese Aufgabe nimmt uns die automatische Aufgabenverwaltung von Windows ab, sprich im Grunde ist es egal ob eine Client- oder Server-Version von Windows. Öffnen Sie einfach die Windows-Aufgabenverwaltung und beginnen Sie über „Aufgabe erstellen“ das Anlegen. Die Optionen der „einfachen Aufgabe“ genügt uns in diesem Falle leider nicht.

4. Windows-Aufgabe anpassen

Unter Allgemein sind keine großen Anpassungen notwendig. Die Aufgabe muss lediglich so definiert werden, dass diese auch ohne eine Anmeldung aktiv ausgeführt wird. Als Trigger muss ein simpler Zeitplan definiert werden, sprich er soll jede Minute das Skript ausführen. Das kann natürlich je nach Anwendung angepasst werden, häufiger als jede Minute ist in diesem Fall auch nicht möglich. Bitte beachten Sie, dass Sie „1 Minute“ händisch eintragen müssen.

Unter Aktionen habe ich nun als Programm „powershell.exe“ definiert welches das Skript eben simpel als Datei ausführt unter dem entsprechenden Pfad mit dem Paramter „-file“. Ich denke die Screenshots sollten das Beispiel genug veranschaulichen.

Anschließend wird diese Aufgabe aktiv und setzt den AutoReply-Counter jede Minute zurück. 

5. Automatische Antwort festlegen (Freigegebenes Postfach oder Benutzerpostfach)

Nun kann die automatische Antwort in Office 365 festgelegt werden, das Skript setzt natürlich auch bestehende Abwesenheitsnotizen zurück – sprich alle Vorhandenen und Zukünftigen. Dazu loggt euch einfach mit dem Administrator-Konto in dem Office 365-Dashboard unter der portal.office.com ein und wechselt dort in die App „Adminsitration“. Dort könnt Ihr nun je nachdem ob Benutzerpostfach oder auch bei einem Freigegebenen Postfach (Shared Mailbox) die automatische Antwort festlegen. Alternativ kann das auch je Postfach über das OWA gemacht werden, aber eine zentrale Verwaltung ist wesentlich komfortabler. 

In dem Screenshot findet man die benötigten Einstellungen. Diese sollten soweit selbsterklärend sein, wichtig ist nur, dass darauf  geachtet wird, dass die AutoReply auch für externe Kontakte von Office 365 gelten.

Nun sollte nur noch zu guter Letzt die Funktion getestet werden.

Inhalt des Skriptes

Im Grunde genommen verfügt das Skript über 3 Komponenten. In der ersten Passage werden die Anmeldedaten für einen Office 365-Administrator (oder Exchange-Administrator) definiert. Anschließend verbindet das Skript sich automatisch mit dem Office 365 Tenant (Exchange) und führt nun den Befehl aus, welcher den AutoReply-Counter zurücksetzt.

#Definieren der Anmelde-Informationen für Office 365

$powerUser = „MeinO365Admin@meinedomain.de“

$powerPass = „daspasswortvomadmin“

$password = ConvertTo-SecureString $powerPass -AsPlainText -Force

$adminCredential = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $powerUser,$password

$Cred = $adminCredential

#####################################################################################################

### Exchange Online Login Session starten

$cred
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $cred -Authentication Basic -AllowRedirection
Import-PSSession $Session –AllowClobber

#####################################################################################################

### Exchange AutoResponder Reset
$enabled = get-mailbox -resultsize unlimited |get-mailboxautoreplyconfiguration | where {$_.autoreplystate -eq „enabled“} | select identity,autoreplystate
$enabled | foreach-object {
set-mailboxautoreplyconfiguration $_.identity -autoreplystate „Disabled“
set-mailboxautoreplyconfiguration $_.identity -autoreplystate $_.autoreplystate
}

Fazit

Eine Funktion die sicherlich schon Jahre vermisst wird, bzw. deren Konfiguration unnötig erschwert ist. Aber ich bin mir sicher, dass das sicherlich in einem zukünftigen Update nachgebessert wird. Diese Methode schafft zumindest eine schnelle Abhilfe, auch wenn ich etwas als „Quick & Dirty“ bezeichnen würde.