Hallo Exchange-Freunde,

aufgrund der Anfrage eines Lesers melde ich mich heute mit einer spannenden Konfiguration. Ziel ist es, dem neuen Postfachbenutzer eine automatisierte Willkommensnachricht zukommen zu lassen.

Möglich macht das der „Scripting Agent“ – standardmäßig deaktiviert -, der nach erfolgreichem Anlegen eines Postfaches Aufgaben übernehmen kann. Ich starte zunächst mit einer Übersicht der Konfigurationsschritte:

  1. HTML-Vorlage erstellen
  2. Empfangsconnector prüfen
  3. Konfigurationsdatei (XML) anpassen
  4. „Scripting Agent“ aktivieren
  5. Benutzerpostfach erstellen

Scripting Agent

Cmdlet-Erweiterungs-Agents sind Komponenten in Microsoft Exchange Server 2010, die bei der Ausführung von Exchange 2010-Cmdlets aufgerufen werden. Wie der Name sagt, erweitern Cmdlet-Erweiterungs-Agents die Funktionen der aufrufenden Cmdlets, indem sie ihnen beim Verarbeiten von Daten oder bei der Durchführung zusätzlicher Aktionen helfen, die auf den Anforderungen des Cmdlets basieren. Cmdlet-Erweiterungs-Agents sind für jede Serverrolle außer der Edge-Transport-Serverrolle verfügbar. (Quelle: TechNet)

Schritt 1 – HTML-Vorlage erstellen

Bevor eine Willkommensnachricht an den Benutzer geht, muss diese zunächst mit Outlook erstellt werden. Sie wird dann im HTML-Format in einer Freigabe bereitgestellt.

  1. Outlook starten
  2. Neue Nachricht
  3. Text / Bilder hinzufügen
  4. als HTML in einer Freigabe speichern –> \\dc1\transfer\willkommen.htm

01 WillkommenHTML

Schritt 2 – Empfangsconnector prüfen

Damit der Scripting Agent die Willkommensnachricht auch wirklich versenden kann, muss geprüft werden, ob der anonymisierte Nachrichtenversand vom Exchange-Server funktioniert. Dazu nutze ich sofort meine neue Willkommensnachricht!

  1. Am Exchange Server anmelden
  2. PowerShell öffnen, um den Mailversand zu testen
    $emailbody = [String] (Get-Content ("\\dc1\Transfer\wilkommen.htm"))
    $emailbody = $emailbody -Replace "Benutzername", "Andres Sichel"
    Send-MailMessage -From administrator@sichel-it.de -To andi@sichel-it.de -SMTPserver app2.sichel.loc -Subject "Herzlich Willkommen" -Body $emailbody -BodyAsHTML
  3. Klappt der Versand, ist es okay, andernfalls…
  4. …Empfangskonfiguration prüfen – und ggf. einen Empfangsconnector anlegen. Ich habe einen, der es allen Servern erlaubt, Mails intern zuzustellen.

02 Connector

Schritt 3 – Konfigurationsdatei (XML) anpassen

Bevor der Scripting Agent aktiviert wird, sollte die Konfigurationsdatei angepasst werden. Die Konfigurationsdatei liegt im Exchange Installationsverzeichnis: „\Bin\CmdletExtensionAgents\ScriptingAgentConfig.XML.“ Ist die Datei nicht vorhanden, kann einfach eine mit folgendem Inhalt erstellt werden:

<?xml version="1.0" encoding="utf-8" ?>
<Configuration version="1.0">
</Configuration>

Dadurch passiert zunächst gar nichts, es sind nur alle Vorbereitungen getroffen ;)

Nun möchte ich hinterlegen, dass nach dem „New-Mailbox“-Befehl eine E-Mail erzeugt wird, dazu setze ich in das „Configuration-Tag“ Folgendes ein:

<Feature Name="Welcome E-Mail" Cmdlets="New-Mailbox,Enable-Mailbox">
        <ApiCall Name="OnComplete">
               If($succeeded) 
                {
                    start-sleep -s 20
                    $Mailbox = $provisioningHandler.UserSpecifiedParameters["Name"]
                    
                    Set-CASMailbox $Mailbox -ImapEnabled $false -POPEnabled $false
                    
                    $Name = (Get-Mailbox $Mailbox).Name
                    $email = (Get-Mailbox $Mailbox).PrimarySMTPAddress.ToString()
                                       
                    $emailbody = [String] (Get-Content ("\\dc1\Transfer\willkommen.htm"))
                    $emailbody = $emailbody -Replace "Benutzername", $Name
                    Send-MailMessage -From willkommen@sichel-it.de -To $email -SMTPserver 10.0.0.2 -Subject "Herzlich Willkommen" -Body $emailbody -BodyAsHTML -Encoding ([System.Text.Encoding]::UTF8)

                    if ($Mailbox) { Remove-Variable Mailbox }
                    if ($DisplayName) { Remove-Variable DisplayName }
                    if ($email) { Remove-Variable email } 
                    if ($emailbody) { Remove-Variable emailbody }       


                }
 </ApiCall>
</Feature>

Ach ja, ich deaktiviere nebenbei auch noch POP & IMAP ;)

03 Scripting Agent

Die vollständige Datei gibt es hier  –> ScriptingAgentConfig.xml

 

Schritt 4 – Scripting Agent aktivieren

Da nun alle Vorbereitungen getätigt sind, kann der Scripting Agent aktiviert werden.

  1. Am Exchange Server anmelden
  2. Exchange Management Shell öffnen
    Enable-CmdletExtensionAgent "Scripting Agent"
  3. Fertig

04 Scripting Agent aktivieren

Schritt 5 – Benutzerpostfach

Nachdem nun der Scripting Agent aktiviert und die XML-Datei erstellt ist, kann ich das Postfach anlegen. Dabei wird die Willkommensnachricht versendet:

05 Willkommensnachricht

 

Das war’s auch schon ;)

Kleiner Hinweis: Ich habe diesen Beitrag auf Exchange 2010 erstellt, da ich diese Umgebung gerade für einen anderen Test aufgebaut habe, sonst bleibe ich bei Exchange 2016 :)

 

Viele Grüße aus Bielefeld!

Andi