bluebay2014 - Fotolia

Office 365 und Exchange Online mit der PowerShell steuern

Mit der PowerShell kann man auch Exchange Online verwalten. Die PowerShell ermöglicht außerdem das Management von Office 365 von lokalen Rechnern aus.

Lokale Exchange Server lassen sich mit der PowerShell verwalten. Dazu stellt Microsoft die Exchange Management Shell zur Verwaltung bereit, mit dem sich die Exchange Server verwalten lassen.

Viele Unternehmen betreiben Exchange in einer hybriden Umgebung, zum Beispiel zusammen mit Office 365. Mit der Exchange Management Shell, und damit der PowerShell, lassen sich sowohl lokale Umgebungen als auch Cloud-Anwendungen wie Exchange Online in Office 365 verwalten.

Damit sich Exchange Online mit der PowerShell verwalten lässt, ist eine Anpassung der Ausführungsrichtlinie in der PowerShell notwendig. Das geht zum Beispiel auf Windows-10-Computern.

Für die Änderung muss man die PowerShell mit Administrationsrechten starten. Damit Exchange Online mit der PowerShell verwaltet werden kann, wird die Richtlinie auf RemoteSigned gesetzt:

Set-ExecutionPolicy RemoteSigned

Funktioniert die Ausführung von Befehlen nicht, kann die Richtlinie auch kurzzeitig ausgeschaltet werden. Das wird mit dem folgenden Befehl erreicht:

Set-ExecutionPolicy Unrestricted

PowerShell Core verwenden

Die PowerShell ist in Windows integriert. Microsoft bietet mit PowerShell Core eine neue Version an, die sich auch in macOS und auf Linux-Rechnern installieren lässt. Auch mit der Core-Version kann Exchange Online verwaltet werden.

Die vollwertige PowerShell in Windows 10 oder Windows Server 2016/2019 verfügt zwar über mehr Möglichkeiten als PowerShell Core. Zur Verwaltung von Exchange Online reicht der Umfang von PowerShell Core allerdings aus.

Die Installation von PowerShell Core erfolgt entweder über die Installation der ausführbaren Dateien, die Microsoft zum Download zur Verfügung stellt, oder auf Basis der Paketverwaltung in Linux, zum Beispiel mit:

sudo apt-get update

Sudo apt-get install -y powershell

Um die installierte Version der PowerShell anzuzeigen, wird der Befehl $PSVersionTable verwendet. Eine Liste aller Module, mit der die aktuelle Version der PowerShell funktioniert, lässt sich mit Get-Module -ListAvailable anzeigen.

Verbindungsaufbau zu Exchange Online

Unabhängig davon, von welcher Shell aus der Aufbau einer Shell-Sitzung mit der PowerShell erfolgt, sollten zunächst die Anmeldedaten zur Verwaltung in einer Variablen gespeichert werden:

$user = Get-Credential

Auf Basis dieser Anmeldedaten wird in der lokalen PowerShell-Sitzung eine Sitzung zu Exchange Online aufgebaut. Die Daten der Sitzung werden ebenfalls in einer Variable gespeichert. Das ermöglicht es, diese Sitzung schnell und einfach in der PowerShell zu öffnen:

$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $user -Authentication Basic -AllowRedirection

Erscheint keine Fehlermeldung, kann die Sitzung mit den gespeicherten Daten in der PowerShell oder PowerShell Core importiert werden:

Import-PSSession $session

Abbildung 1: Verbindungsaufbau zu Exchange Online in der PowerShell.
Abbildung 1: Verbindungsaufbau zu Exchange Online in der PowerShell.

Dadurch werden die Cmdlets zur Verwaltung von Exchange Online in die aktuelle Sitzung importiert und Exchange Online kann verwaltet werden. Daneben lassen sich PowerShell ISE sowie Visual Studio Code (VSCode) herunterladen und für die Verwaltung einsetzen. Es gibt somit verschiedene Wege, mit der PowerShell zu arbeiten und eine Verbindung zu Exchange Online aufzubauen.

Exchange Online in der PowerShell verwalten

Mit Get-Command werden alle Befehle angezeigt, welche die Shell zur Verfügung stellt. Mit dem Platzhalter * lässt sich eine Liste von Befehlen anzeigen.

Der Befehl Get-Command *mailbox* zeigt zum Beispiel alle Cmdlets an, deren Name mit mailbox endet. Dadurch lassen sich Befehle filtern. Mit dem Befehl Help <Cmdlet> wird eine Hilfe zum entsprechenden Cmdlet angezeigt, zum Beispiel Help New-Mailbox.

Abbildung 2: Anzeigen der Hilfe für Befehle in der PowerShell zur Verwaltung von Exchange Online.
Abbildung 2: Anzeigen der Hilfe für Befehle in der PowerShell zur Verwaltung von Exchange Online.

Office 365 mit der PowerShell verwalten

Neben der Möglichkeit, Exchange Online mit der PowerShell zu verwalten, können auch die anderen Cloud-Dienste in Office 365 oder Microsoft Azure mit der PowerShell verwaltet werden. Auch das funktioniert in der gleichen Sitzung.   

Um Office 365 und Microsoft Azure in der PowerShell zu verwalten, muss man zusätzliche Module herunterladen und installieren:

Install-Module -Name AzureAD

Außerdem ist der Microsoft Online Services-Anmelde-Assistent notwendig, den man installieren muss:

Install-Module MSOnline

Mit dem Cmdlet Connect-MsolService kann eine Verbindung zu Office 365 aufgebaut werden. Mit dem Cmdlet get-command *msol* lassen Sie sich die einzelnen Cmdlets anzeigen.

Abbildung 3: Exchange Online und Office 365 mit der PowerShell verwalten.
Abbildung 3: Exchange Online und Office 365 mit der PowerShell verwalten.

Nächste Schritte

Den E-Mail-Fluss in Exchange Online steuern und absichern.

Exchange Online versus Office 365: Welcher Plan ist besser?

Migration von E-Mail-Archiven nach Exchange Online.

Erfahren Sie mehr über Collaboration-Software