Office 365 Exchange Online mit PowerShell verbinden: Eine Schritt-für-Schritt-Anleitung
> <>Das Management von Microsoft 365 mit allen Anwendungen über eine grafische Benutzeroberfläche in einem Webbrowser kann praktisch sein – aber nur bis zu einem gewissen Grad. Die beiden Schnittstellen, die IT-Experten am häufigsten verwenden, sind das Exchange Admin Center und das Office 365 Admin Center. Wenn Sie jedoch Hunderte von Microsoft 365-Konten in einem Unternehmen verwalten müssen, kann die Befehlszeilenschnittstelle (CLI) eine effizientere Lösung sein. Mit ihr können Sie Exchange Online-Befehle anwenden, die im Admin Center nicht verfügbar sind.
Als Administrator können Sie Microsoft Exchange Server über die Befehlszeilenschnittstelle in Microsoft PowerShell verwalten. Das Problem ist, dass die üblichen Cmdlets, die vor Ort in einer Exchange Server-Umgebung verwendet werden können, nicht für das cloudbasierte Exchange Online geeignet sind. Sie müssen Exchange Online Powershell-Module installieren, um PowerShell-Cmdlets in Office 365 zu aktivieren. In diesem Beitrag erklären wir die verschiedenen Möglichkeiten, Exchange Online mit PowerShell zu verbinden. Die Verwendung von Cmdlets in Exchange Online hilft, das Management zu optimieren und somit Zeit und Aufwand zu sparen.
Vorbereiten Ihrer Umgebung
Anforderungen
Um Exchange Online mit Powershell zu verbinden, stellen Sie sicher, dass Ihr System die folgenden Anforderungen erfüllt:
- Windows 7 SP1 oder neuere Desktop-Windows-Versionen und Windows Server 2008 R2 SP1 oder neuere Server-Windows-Versionen. Zusätzlich zum Windows Management Framework 3.0, 4.0 oder 5.1 ist das .NET Framework 4.5 oder eine neuere Version erforderlich.
- Internetverbindung: Öffnen Sie den TCP-Port 80, um eine Verbindung zwischen Ihrem lokalen Computer und dem Zielhost herzustellen.
- Der aktuelle Benutzer mit Exchange Online PowerShell ist aktiviert. Admin-Konten verfügen standardmäßig über diesen Zugriff.
Mit dem folgenden Cmdlet können Sie das Verbinden mit Exchange Online PowerShell für ein bestimmtes Konto aktivieren:
Set-User -Identity user@domain.com -RemotePowerShellEnabled $true
Installieren des Exchange Online PowerShell-Moduls
Die Installation des Exchange Online PowerShell-Moduls ist erforderlich, da es Cmdlets enthält und somit das Management für einen Mandanten ermöglicht. In dieser Anleitung installieren wir das Exchange Online V2 PowerShell-Modul.
Möglicherweise möchten Sie jedoch überprüfen, ob das Exchange Online-Modul bereits auf dem Client-Computer installiert ist. Führen Sie dazu das folgende Cmdlet aus:
Get-Module -ListAvailable -Name ExchangeOnlineManagement
Wenn Sie das Modul nicht finden, fahren Sie mit der Installation fort. Sie können das Exchange Online Powershell-Modul mit einem einzigen PowerShell-Befehl installieren. Um den Vorgang zu starten, führen Sie Windows PowerShell als Administrator aus und führen Sie dann das folgende Cmdlet aus:
#Install Exchange Online Management Module
Install-Module -Name ExchangeOnlineManagement -Force
Falls das System Sie auffordert, die Installation aus einem nicht vertrauenswürdigen Repository zu bestätigen, drücken Sie Y , um fortzufahren.
Wenn das Exchange Online PowerShell-Modul in Ihrem System fehlt, wird die folgende Fehlermeldung angezeigt:
Connect-ExchangeOnline: Der Begriff „Connect-ExchangeOnline” wird nicht als Name eines Cmdlets, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt.
Sie können das Modul mit diesem Cmdlet aktualisieren:
Update-Module ExchangeOnlineManagement
Einrichten der Verbindung
In diesem Leitfaden behandeln wir die beiden wichtigsten Methoden zum Verbinden von PowerShell mit Exchange Online: die manuelle und die automatische Einrichtung.
Manuelle Einrichtung
Beginnen wir mit der manuellen Methode, um den Konfigurationsprozess besser zu verstehen:
- Öffnen Sie Windows PowerShell und wählen Sie eine der folgenden Optionen, um fortzufahren:
- Klicken Sie auf Starten Sie, geben Sie cmdein und klicken Sie dann mit der rechten Maustaste auf das Element Eingabeaufforderung . Wählen Sie im Kontextmenü „ <“ (Als Administrator ausführen).
ODER gehen Sie zu „Start“
- Windows PowerShell. Klicken Sie mit der rechten Maustaste auf „Windows PowerShell“ und wählen Sie dann „Als Administrator ausführen“
Als Administrator ausführen im Kontextmenü. Durch Ausführen von PowerShell im Modus der Verwaltung können Sie Cmdlets ohne Einschränkungen ausführen.
- Skripte sollten aktiviert sein, um PowerShell ordnungsgemäß verwenden zu können. Um Skripte auszuführen, müssen Sie die Richtlinie auf RemoteSignedsetzen. Führen Sie diesen Befehl aus, um die Ausführungsrichtlinie festzulegen:
Set-ExecutionPolicy RemoteSignedFühren Sie dieses Cmdlet am besten direkt zu Beginn der Konfiguration von PowerShell für die Verwaltung von Exchange Online und Microsoft 365 aus. Andernfalls führt jeder weitere Versuch, den Befehl
Import-PSSessionauszuführen, zu folgendem Fehler:Import-PSSession : Dateien können nicht geladen werden, da die Ausführung von Skripts auf diesem System deaktiviert wurde. Geben Sie ein gültiges Zertifikat an, mit dem die Dateien signiert werden sollen.
- Falls das System eine Bestätigung anfordert, klicken Sie auf Y , um die Änderung der Richtlinie zu bestätigen. Sie können auch die Uneingeschränkte Richtlinie mit diesem Cmdlet:
Set-ExecutionPolicy UnrestrictedStandardmäßig ist der Ausführungsrichtlinienmodus Eingeschränkt.
- Sie müssen Anmeldeinformationen erstellen und Ihre Administrator-Anmeldedaten und Ihr Passwort im Popup-Fenster eingeben, um den Zugriff auf Exchange Online zu aktivieren. Der Benutzer, der Zugriff erhält, benötigt globale Administratorrechte für das Microsoft 365-Abonnement-Lizenzierung.
$Credential=Get-Credential - Das System speichert dann die angegebenen Anmeldeinformationen als Variable $Credential , die im folgenden Befehl verwendet wird.
- Verwenden Sie das Cmdlet New-PSSession , um eine Remote-PowerShell-Sitzung zu erstellen. Führen Sie Folgendes aus:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Credential -Authentication Basic -AllowRedirectionHinweis: In diesem Cmdlet legen wir die Ziel-URL des Cloud-Exchange-Online-Servers fest, der die Anforderung akzeptieren muss. Nach der Ausführung des Befehls gewähren Ihnen die Microsoft 365-Cloudserver Zugriff auf den virtuellen Exchange Online-Server, der mit Ihrem aktuellen Microsoft 365-Konto verknüpft ist.
- Sie müssen die Exchange Online PowerShell-Cmdlets in die aktuelle Sitzung importieren. Hier ist der zu verwendende Befehl:
Import-PSSession $SessionWährend des Importvorgangs wird ein Fortschrittsbalken angezeigt.
- Die folgende Meldung wird angezeigt, nach erfolgreicher Ausführung des Befehls:

HINWEIS: Bei Verwendung der MFA (Multi-Faktor-Authentifizierung) für ein Microsoft 365-Konto funktionieren die zuvor genannten Standard-Cmdlets nicht. Um PowerShell mit aktivierter MFA mit Exchange Online zu verbinden, führen Sie Folgendes aus:
Connect-EXOPSSession -UserPrincipalName YOUR_UPNIn diesem Cmdlet steht YOUR_UPN für den Benutzerprinzipalnamen, also den Namen des von Ihnen verwendeten Microsoft 365-Kontos. Möglicherweise müssen Sie hier ein anderes Modul installieren: Microsofts Exchange Online Remote PowerShell Module.
Beachten Sie, dass dieses Modul für die Ausführung zeitaufwändiger Skripte ungeeignet sein kann, da die Sitzung nach einer Stunde beendet wird, während Sie es verwenden. Erwägen Sie außerdem die Verwendung von Vertrauenswürdige IP-Adressen (d. h. die IP-Adressen Ihrer Organisation). Auf diese Weise können Sie die MFA umgehen, wenn Sie Exchange Online PowerShell über das Netzwerk Ihrer Organisation verbinden.
- Nach der Verbindung zu Microsoft 365 und Exchange Online können Sie mit dem Management Ihrer Office 365-Cloudumgebung beginnen. Sie können ein Cmdlet ausführen, um zu überprüfen, ob die Verbindung arbeitet. Versuchen Sie beispielsweise, die Liste der verfügbaren Postfächer mit diesem Befehl anzusehen:
Get-MailboxDas weitere Cmdlet kann die Liste der verfügbaren Exchange Online PowerShell-Befehle bereitstellen:
Get-Command -Module tmp* - Beenden Sie die Sitzung, nach dem Sie Ihre Arbeit mit Exchange hier abgeschlossen haben. Diese Vorgehensweise wird sowohl aus Gründen der Sicherheit als auch zur Optimierung der Leistung empfohlen. Hier ist das Cmdlet:
Remove-PSSession $SessionHINWEIS: Nach der Ausführung dieses Befehls wird keine Meldung angezeigt. Um zu überprüfen, ob die Sitzung erfolgreich entfernt wurde, können Sie denselben Befehl verwenden:
Get-MailBox. Wenn die Sitzung getrennt wurde, wird eine Fehlermeldung angezeigt, dass die Ausführung von Exchange Online-Cmdlets nicht möglich ist.
>
Die Anzahl der Sitzungen, die Sie gleichzeitig öffnen können, ist begrenzt. Sie können drei Sitzungen gleichzeitig ausführen. Wenn Sie keine dieser Sitzungen trennen, müssen Sie warten, bis die Sitzung abgelaufen ist, bevor Sie sich mit einer neuen Sitzung von einer anderen PowerShell-Konsole aus mit Exchange Online PowerShell verbinden können.
Automatisierte Einrichtung
Zusätzlich zum manuellen Ansatz können Sie PowerShell und Exchange Online mithilfe der Automatisierungsfunktionen von PowerShell verbinden. Durch die Automatisierung müssen Sie weniger Befehle verwenden, wodurch der Konfigurationsprozess beschleunigt wird.
Gehen Sie wie folgt vor:
- Laden Sie das Skript herunter. In unserem Beispiel heißt die Skriptdatei ConnectExchangeOnlinePowerShell.ps1
- Suchen Sie die Skriptdatei nach dem Herunterladen im Verzeichnis. Wir haben das Skript unter C:temp_win.
- Bevor Sie das Skript ausführen, legen Sie die Skript-Ausführungsrichtlinie auf RemoteSigned mit diesem Cmdlet:
Set-ExecutionPolicy RemoteSignedDadurch vermeiden Sie den folgenden Fehler:
Die Datei C:temp_winConnectExchangeOnlinePowerShell.ps1 ist nicht digital signiert. Sie können dieses Skript auf dem aktuellen System nicht ausführen.
Mit der Bypass Ausführungsrichtlinie können Sie dieses Problem ebenfalls umgehen. Hier ist das erforderliche Cmdlet:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass - Bestätigen Sie die Änderungen in der Ausführungsrichtlinie, indem Sie Folgendes eingeben: Y.
- Sie können nun mit dem Skript fortfahren. Wenn MFA für Ihr Microsoft 365-Konto nicht aktiviert ist, benötigt das Skript keine zusätzlichen Argumente:
.ConnectExchangeOnlinePowerShell.ps1Wenn MFA in Ihrer Microsoft 365-Umgebung aktiviert ist, verwenden Sie den folgenden Befehl:
.ConnectExchangeOnlinePowerShell.ps1 -MFA - Nach dem erfolgreichen Verbinden von Exchange Online mit PowerShell können Sie mit Cmdlets Benutzerkonten, Postfächer und andere Elemente sowie Workflows verwalten. Mit diesem Cmdlet können Sie beispielsweise eine Liste der verfügbaren Benutzer-Postfächer abrufen:
Get-MailboxAußerdem können Sie das Skript verwenden, um Workflows zu planen und weiter zu automatisieren. Verbinden Sie sich beispielsweise mit Exchange Online, ohne Anmeldeinformationen anzugeben. Das Skript ermöglicht es Ihnen, Login und Passwort als Ausführungsoptionen hinzuzufügen:
./ConnectExchangeOnlinePowerShell.ps1 -UserName admin@your_domain.com -Password your_passwordBeachten Sie, dass die Angabe Ihrer Passwörter als Klartext in der Befehlszeile des Skripts im Falle einer Datenverletzung ein Sicherheitsrisiko darstellen kann.
- Die Beschränkung auf maximal drei laufende Sitzungen bleibt bestehen, daher sollten Sie Ihre Sitzung nach Fertigstellen Ihrer Arbeit mit Exchange Online PowerShell beenden. Das Cmdlet zum Beenden der Sitzung lautet wie folgt:
./ConnectExchangeOnlinePowerShell.ps1 -Disconnect
So verwalten Sie Exchange Online über PowerShell unter MacOS
Es gibt mehrere Möglichkeiten, PowerShell unter MacOS zu installieren. Am bequemsten und einfachsten ist es, den Client direkt von der Microsoft-Websiteherunterzuladen. PowerShell unterstützt Apple Silicon-CPUs in Version 7.2 oder neuer.
Beachten Sie, dass Sie einen Mac mit mindestens macOS11 Big Sur benötigen. Nach der Installation des PowerShell-Pakets auf einem solchen Gerät verwenden Sie entweder die manuelle oder die automatische Konfiguration, die wir oben beschrieben haben, um Ihre PowerShell mit Exchange Online zu verbinden.
Verwendung von PowerShell mit Exchange Online
Mit PowerShell-Cmdlets können Sie den Zeit- und Arbeitsaufwand für das Management von Exchange Online optimieren.
Einige der grundlegenden Cmdlets sehen wie folgt aus:
New-Mailbox– zum Erstellen eines neuen PostfachsSet-Mailbox– zum Anpassen der Einstellungen eines vorhandenen PostfachsGet-Mailbox– zu Informationen zu verfügbaren Postfächern in der gesamten Umgebung anzeigenRemove-Mailbox– zu ein Postfach aus Exchange Online löschen
Um die Liste der verfügbaren PowerShell-Cmdlets anzusehen, verwenden Sie diesen Befehl:
Get-command -Module ExchangeOnlineManagement
Sehen Sie sich zum Schluss dieses Skriptbeispiel an. Mit diesem Skript können Sie alle Postfächer aus Exchange Online abrufen:
#Import PowerShell module for Exchange Online
Import-Module ExchangeOnlineManagement
#Connect to Exchange Online
Connect-ExchangeOnline -Credential (Get-Credential) -ShowBanner:$False
#Get All Mailboxes
Get-EXOMailbox | Format-table UserPrincipalName,DisplayName
#Disconnect Exchange Online
Disconnect-ExchangeOnline -Confirm:$False
Fazit
Durch das Verbinden von Exchange Online mit PowerShell können Sie Exchange-Postfächer schnell und bequem verwalten. Darüber hinaus können Sie Skripte verwenden, um Aktionen, Änderungen und Anpassungen für mehrere Konten gleichzeitig zu automatisieren und so die betriebliche Effizienz zu steigern.
Da Microsoft keine nativen Tools zum Backup für Exchange Online, Microsoft Teams, OneDrive und SharePoint Online anbietet, sollten Sie eine spezielle Backup-Lösung verwenden, um Datenverluste in der Cloud zu vermeiden. NAKIVO Backup & Replication ist eine universelle Lösung für die Datensicherheit, mit der Sie Backups von Microsoft 365-Daten an verschiedene Speicherziele, einschließlich öffentlicher Clouds, senden können.