Exchange Online mit PowerShell administrieren


    Tags: ,

    Management von Exchange OnlineWie Exchange im firmen­eigenen Rechen­zentrum kann man auch die Cloud-Version mit Power­Shell admini­strieren. Voraus­setzung dafür ist aller­dings, dass man sich erst von seinem lokalen Computer zur Microsoft-Cloud ver­bindet. Der Rest funk­tioniert dann allerdings wieder so, wie man es von Exchange gewohnt ist.

    Ein Vorteil bei der Verwaltung von Office 365 ist, dass wir keine eigene Exchange-Shell und auch kein zusätzliches Modul mehr laden müssen, weil wir uns remote mit Exchange Online verbinden. Am Client benötigen wir dafür Windows PowerShell ab der Version 3 und das .NET-Framework 4.5.

    Schritte für den Verbindungsaufbau

    Außerdem müssen wir sicherstellen, dass auf dem PC, welcher sich mit Exchange verbinden möchte, die Execution Policy nicht auf Restricted steht. Das würde die Ausführung von Scripts verhindern.

    Um eine Verbindung mit Exchange Online aufzubauen, geht man folgender­maßen vor:

    Für die Variable $userdaten muss ein Account angegeben werden, welcher die Berechtigung hat, Exchange Online zu verwalten.

    Mit Import-PSSession $sitzung holen wir uns dann quasi die aktive Sitzung in unsere PowerShell.

    PowerShell-Sitzung zu Exchange Online aufbauen

    PowerShell kann nun genauso verwendet werden wie in der Shell eines lokalen Exchange-Servers.

    Beispiel: Neue Verteilergruppe anlegen

    Um eine neue Verteiler­gruppe auf Exchange Online zu erstellen, gibt man folgenden Befehl ein:

    New-DynamicDistributionGroup -Name "Alle Benutzer aus Deutschland" -RecipientFilter {(RecipientTypeDetails -eq 'UserMailbox') -and (CountryOrRegion -ne 'Germany')}

    Bei den Angaben im Filter ist zu bedenken, dass die Microsoft-Server Englisch sprechen. Wenn etwa nach dem Land "Deutschland" gefiltert werden soll, dann muss man "Germany" verwenden.

    Anzeigen der neuen Verteilergruppe in der Exchange-Konsole

    In der Exchange-Konsole ist die Gruppe nun zu sehen.

    PowerShell-Kommandos aus Konsole übernehmen

    Eine weitere praktische Funktion ist die Befehls­protokollierung. Da jeder Klick und jede Eingabe in der GUI einen PowerShell-Befehl auslöst, kann man die Kommandos kopieren und für eigene Scripts einsetzen.

    Dieses Feature findet man in der Exchange ECP oben rechts hinter dem Fragezeichen (sowohl in Exchange Online als auch auf Exchange On Prem).

    Befehls­protokollierung im Exchange Admin Center aktivieren

    Solange die Befehls­protokollierung geöffnet ist, zeichnet diese jede Aktivität aus der Exchange-Konsole auf. Dies können wir am Beispiel der eben erstellten Verteilergruppe nachvollziehen, wenn wir diese öffnen, den Name anpassen und sie wieder schließen.

    Die von der Exchange-Konsole erzeugten PowerShell-Befehle im Protokollierungs-Viewer

    Die ausgeführten Befehle lassen sich nun auslesen und bei Bedarf weiter­verarbeiten.

    Keine Kommentare