Normalerweise ist es nur an einem Outlook Client oder über OWA möglich seinen eigenen Abwesenheits-Einstellungen zu ändern, bzw. eine automatische Antwort an den Sender zu schicken.
In einem aktuellen Fall zieht Kunde X mit seinem Mailserver um. In dieser Umstellungszeit sollen nun alle Sender eine automatische Antwort erhalten, dass es eben zu Problemen kommen kann oder der Empfang von E-Mail’s nicht zu 100% gewährleistet ist.
Wie schon erwähnt, gibt es keine Transport-Regel o.ä. um so eine automatische-Antwort für bestimmte Postfächer zu setzen. Dann bin ich auf das Glen’s Exchange Dev Blog aufmerksam geworden. Glen Scales hat eine Library geschrieben (EWSOofUtil.dll), die es für einen Administrator ermöglicht, die Automatische Antwort für jeder Postfach über EWS zu setzen.
Wie es funktioniert, erkläre ich im Folgenden:
Als erstes braucht ihr die EWSOofUtil.dll:
EWSOofUtil.dll [92.3KB] –enthält auch den Quellcode
Als nächstes müsst ihr euren Client Access Server (CAS) das Ausführen von Scripten erlauben:
set-ExecutionPolicy RemoteSigned
Um Änderungen an einem Postfach durchzuführen, müsst ihr die Berechtigung daran haben:
Add-MailboxPermission “test.user” -User “Administrator” -AccessRights FullAccess
Hier gebe ich dem Administrator volle Berechtigung auf das Postfach von test.user.
Nun können wir die Oof-Einstellungen setzen:
[Reflection.Assembly]::LoadFile(“C:\Users\administrator\Desktop\EWSOofUtil\EWSOofUtil.dll”)
$ExternalMessage=”I’m out of office!”
$oofutil = new-object EWSOofUtil.OofUtil
$oofutil.setoof(“test.user@test.org”,”Enabled”,”",$ExternalMessage)
- Als erstes müsst ihr die dll in die Powershell laden
- Danach wird die Nachricht gesetzt, hier kann auch kompletter html Code genommen werden. Einfach über $ExternalMessage = “<html><…></html>”
- Der letzte Befehl setzt die automatische Antwort für den User: “test.user” mit der externen Nachricht
Weitere Befehle können auch die Zeit einstellen, wann diese Nachricht gesendet wird:
$oofutil.setoof(“test.user@test.org”,”Scheduled”, [datetime]::Now.Date.ToLocalTime(),[datetime]::Now.Date.AddDays(4).ToLocalTime())
Überprüfen kann man es dann im OWA:
Weitere Beispiele für den Einsatz der dll findet ihr hier:
http://msgdev.mvps.org/setoofexamples.htm
So kann man mit schönen Powershell Skripts eine automatische Wartungsmeldung an alle Postfächer binden.
$users = Get-Mailbox -Filter (“customAttribute1 -eq ‘Firma1′”)
$email = $users | % {$_.userprincipalname}$emails = $users | % {$_.userprincipalname}
foreach($mail in $emails){$oofutil.setoof($mail,”Enabled”,”",$ExternalMessage)}

Thank you for the information