Exchange und Office 365 mit PowerShell administrieren

Inhaltsverzeichnis

Post Featured Image

Es ist ein tägliches Spannungsfeld, in dem ein Admin sich bewegt: Auf der einen Seite möchte er Konzepte und Strategien rund um Exchange Online und Office 365 entwickeln, auf der anderen Seite aber prasseln Ad-hoc-Aufgaben wie das Einrichten neuer Postfächer oder Out-of-Office-Benachrichtigungen auf ihn ein. Der Spaß – und der Kern – der Arbeit treten dabei leider oft in den Hintergrund. Doch wie lässt sich das Dilemma lösen? Die Zauberworte heißen PowerShell, Automation und Delegation.

Den Anfang aber macht die PowerShell. So wird zunächst eine Verbindung zum Exchange- bzw. Office 365-Mandanten hergestellt. Nach Installation der PowerShell-Module sind Sie hier in der Lage, mit den ersten PowerShell-Commandlets starten und so mithilfe von One-Linern schrittweise entsprechende Scripte zu erstellen, mit denen wiederkehrende Aufgaben immer und immer wieder erledigt werden können.

Beispiel: Out-of-Office-Management mit PowerShell

Lassen Sie uns dies am genannten Beispiel des Out-of-Office-Managements näher betrachten: 

  • Sie öffnen die klassische ISE.
  • Sie öffnen die RunSelection-Funktion und geben User-Name und Passwort ein. Nun sind Sie am Office 365-Mandanten angemeldet und die Commandlets werden geladen.
  • Wenn Sie nun bestimmte Out-of-Office-Einstellungen verändern möchten, benötigen Sie zudem die Berechtigungen dafür. Allerdings gehören Rückfragen bei Abteilungsleitern und Betriebsräten der Vergangenheit an.

Nun können Sie sich zunächst ansehen, wie die Mailbox eines Einzelnen, einer Gruppe oder der gesamten Belegschaft aktuell eingestellt sind. Dafür nutzen Sie das Commandlet Get-MailboxAutoReplayConfiguration. Stellen Sie dem ein Set voran, können Sie den Text der Abwesenheitsnotiz wie gewünscht anpassen. Auch zeitlich gesteuerte Abwesenheitsnotizen, also mit Start- und Enddatum, lassen sich auf diese Weise einstellen. Ebenso können Abwesenheitsnotizen deaktiviert werden.

Nun verfügen Sie also über ein Werkzeug, mit dem Sie die Aufgaben umsetzen können – doch noch immer müssen Sie es selbst erledigen oder einen PowerShell-Experten beauftragen. Der Aufwand kann doch noch weiter reduziert werden, oder?

Automation und Delegation mit ScriptRunner

Das, was Sie nun nativ mit PowerShell-Scripten umgesetzt haben, möchten Sie gerne zur Ausführung an Kollegen weitergeben – auch an solche, die weder PowerShell-Expertise oder volle Admin-Rechte mitbringen? Scripte sollen außerdem im Team entwickelt und ausgeführt werden können, auch, wenn mehr als drei parallele Sessions dafür erforderlich sind?

Dann gilt es, zunächst ein standardisiertes Vorgehen zu schaffen. Mithilfe des ISE-Plugins in ScriptRunner sehen Benutzer alle verfügbaren Scripte – ob selbst entwickelt oder als Standards von GitHub –, deren Versionierung und eventuelle Zugriffsprobleme an einer zentralen Stelle. Hier können Sie sich anzeigen lassen, welche Scripte zur Bearbeitung freigegeben sind, können Änderungen vornehmen, diese direkt einchecken und Kommentare für Ihre Kollegen hinterlassen.

Mit der ScriptRunner Admin App können Sie nun bestimmte Actions konfigurieren, zum Beispiel, dass bestimmte Benutzer Out-of-Office-Einstellungen für die Organisationseinheit EMEA bearbeiten dürfen. Diese Actions sind mit weiteren Objekten verknüpft, damit das Management durchgeführt werden kann: mit den sogenannten Queries. Sie bestimmen zum Beispiel, welche Accounts für den ScriptRunner Benutzer auswählbar sind, um für diese Postfächer im nächsten Schritt die gewünschten Einstellungen vorzunehmen.

Sie haben dazu drei Möglichkeiten:

  • Out-of-Office einschalten
  • Out-of-Office ausschalten
  • Out-of-Office terminieren/schedulen

Das Planen einer Benachrichtigung ist dabei sicher das häufigste Szenario.

Dafür wählen Sie zunächst die Postfächer aus, für die Sie Out-of-Office konfigurieren können und bestimmen dann den Text bzw. wählen vordefinierte Inhalte aus. Gerade die Möglichkeit Textbausteine für unterschiedliche Anwendungsfälle wie z.B. Urlaub, Krankheit oder Fortbildung zentral zu definieren, sorgt für ein unternehmensweit einheitliches Erscheinungsbild. Start- und Enddatum der Abwesenheiten können als Variablen dynamisch in die Abwesenheits-Benachrichtigung eingefügt werden. Hier steht ein komfortables Kalender-Control zur Verfügung. Als Admin ist dies schon eine echte Arbeitserleichterung – aber die Aufgabe kann immer noch niemand anders übernehmen.

Mit der Delegate App von ScriptRunner können Administratoren nun die genannten Aufgaben auch an Helpdesk Mitarbeiter oder Kollegen aus den Fachbereichen sicher delegieren. Diese benötigen zur Ausführung weder PowerShell Kenntnisse noch privilegierte Berechtigungen, denn die eigentliche Verarbeitung übernimmt der ScriptRunner Server.  Mit Hilfe der Queries wird festgelegt ob ein Mitarbeiter Postfächer der gesamten Organisation verwalten darf, oder er/sie nur für bestimmte Abteilungen zuständig ist.

Die jeweils delegierten Actions stehen den Benutzern über eine komfortable Web-Oberfläche zur Verfügung. Dabei wird jede Aktion durch eine Kachel in der Delegate App repräsentiert. Um auch bei einer größeren Anzahl von zugewiesenen Actions den Überblick zu behalten, können gleichartige Aufgaben farblich gekennzeichnet werden und sind über frei definierbare Tags gruppierbar. Darüber hinaus ist der Benutzer in der Lage häufig genutzte Actions als Favoriten zu markieren. Damit stehen diese nach dem Starten der Delegate App sofort zur Verfügung.

 

Der Anwendungsfall „Abwesenheitsmanagement“ im Überblick:

  • Action: Activate Out-of-Office
  • Query: Select Mailbox
  • Targets: Exchange oder Exchange Online
  • Scripts: Set-Out_Of_Office.ps1
  • Credentials: Service Account mit den erforderlichen Berechtigungen
  • Delegation: Helpdesk User, End User

Überblick behalten dank Monitoring

Mit ScriptRunner sind Administratoren übrigens auch in der Lage, Scripte zeitgesteuert auf mehreren Servern auszuführen. Das ScriptRunner Dashboard sorgt für eine zentrale Übersicht aller PowerShell Aktivitäten. Dabei wird u.a. sichtbar gemacht, welche Action zum welchem Zeitpunkt von einem Benutzer ausgeführt würde. Dies erlaubt die bessere Nachvollziehbarkeit von Tasks sowie das Erkennen eventuell unterschiedlicher Ausführungsergebnisse.

Fazit

Die Kombination aus Exchange On-Premise und Exchange Online mit den entsprechenden PowerShell-Modulen und den Funktionen von ScriptRunner machen die Automation und Delegation von Exchange sehr komfortabel und sicher. Damit werden Administratoren von Routineaufgaben entlastet und das Helpdesk-Team kann viele Anfragen der End-Benutzer schneller und standardisiert verarbeiten.

Neben der Verwendung von ScriptRunner mit Exchange und Office 365, können alle PowerShell-unterstützenden Systeme mit ScriptRunner verwaltet werden. Beispiele: Sharepoint, Azure, Hyper-V, VMware, AWS, etc.

Möchten Sie tiefer in das Thema einsteigen? Dann schauen Sie sich unsere kostenlose Webinaraufzeichnung „Exchange-/O365-Administration mit PowerShell automatisieren und delegieren“ an.

Zusammenhängende Posts

Über den Autor: