Wie man Office 365 Exchange Online-Services mit PowerShell verbindet

Häufig werden Microsoft Office 365 und alle enthaltenen Anwendungen über einen Webbrowser in einer grafischen Benutzeroberfläche verwaltet. Grundsätzlich verwenden Sie die Office 365 Admin Center- und Exchange Admin Center-Webinterfaces. Möglicherweise müssen Sie jedoch die Befehlszeilenschnittstelle (CLI) verwenden, um Massenaktionen durchzuführen, die auf Hunderte von Benutzerkonten angewendet werden. Darüber hinaus möchten Sie möglicherweise die Exchange Online-Cmdlets verwenden, die im Admin Center nicht verfügbar sind.

Viele Administratoren verwenden PowerShell (bereitgestellt von Microsoft), um den Microsoft Exchange Server in der Befehlszeilenschnittstelle zu verwalten. Diese Standardbefehle für lokale Exchange Server-Umgebungen funktionieren jedoch nicht für Exchange Online, das in der Microsoft 365-Cloud läuft. Um PowerShell mit Office 365 zu verwenden, müssen Sie spezielle PowerShell-Module installieren, um eine Verbindung zu Office 365 herzustellen. Lesen Sie diesen Beitrag, um mehr über die verschiedenen Methoden zum Verbinden mit Exchange Online PowerShell zu erfahren.

Anforderungen

Es gibt einige Anforderungen, die erfüllt sein müssen, um eine Verbindung mit Exchange Online PowerShell herzustellen.

  • Sie sollten PowerShell unter Windows 7 SP1 oder neueren Desktop-Windows-Versionen und Windows Server 2008 R2 SP1 oder neueren Server-Windows-Versionen verwenden. Beachten Sie, dass Sie neben der Installation einer aktualisierten Version von Windows Management Framework 3.0, 4.0 oder 5.1 auch .NET Framework 4.5 oder neuer installieren müssen.
  • Eine Internetverbindung ist erforderlich. TCP-Port 80 muss geöffnet sein, um eine Verbindung von Ihrem lokalen Rechner zum Zielhost herzustellen.
  • Zugriff auf Exchange Online PowerShell muss für den aktuellen Benutzer aktiviert sein (standardmäßig ist ein solcher Zugriff für Administratoren aktiviert).

Sie können den Zugriff manuell aktivieren, um eine Verbindung mit Exchange Online PowerShell für einen bestimmten Benutzer herzustellen, mit dem Befehl:

Set-User -Identität [email protected] -RemotePowerShellEnabled $true

Arbeitsprinzip

Sie können eine Verbindung mit Exchange Online PowerShell herstellen, aber dieser Prozess ist komplizierter als die Verwendung von PowerShell zum Verwalten eines lokalen Exchange Servers. Sie können jedoch die integrierte PowerShell-Konsole verwenden, um entfernte Cloud-Infrastrukturen zu verwalten. In diesem Fall wird die Konsole als RemotepowerShell oder PowerShell Remoting bezeichnet. Der Prozess zum Initiieren einer RemotepowerShell-Sitzung für Office 365 und Exchange Online ist etwas anders. Sie sollten spezielle Komponenten herunterladen und installieren, bevor Sie eine Remotesitzung für Office 365 öffnen können. Glücklicherweise werden die für das Initiieren einer Remotesitzung von Exchange Online PowerShell erforderlichen Cmdlets automatisch heruntergeladen, wenn Sie eine RemotepowerShell-Sitzung erstellen. Unterschiedliche Sets von PowerShell-Cmdlets werden verwendet, um Microsoft Office 365 und Microsoft Exchange Online zu verwalten.

Die Hauptargumentation für die Verbindung mit Microsoft Exchange Online in PowerShell umfasst Folgendes:

  • Erstellen einer Remotesitzung zu Exchange Online in PowerShell, die auf Ihrem lokalen Computer geöffnet ist.
  • Bereitstellung von Verbindungseinstellungen, Übermittlung der Authentifizierung.
  • Importieren von PowerShell-Cmdlets, die benötigt werden, um Exchange Online remote zu verwalten.

In dem heutigen Blogbeitrag werden PowerShell-Cmdlets unter Windows 10 ausgeführt.

Manuelle Konfiguration

Lassen Sie uns zunächst die manuelle Methode überprüfen, um das Konfigurationsprinzip besser zu verstehen.

  1. Öffnen Sie Windows PowerShell. Dies können Sie auf mindestens zwei Arten tun.
    1. Klicken Sie auf Start, geben Sie cmd ein, klicken Sie mit der rechten Maustaste auf das Element Eingabeaufforderung und wählen Sie im Kontextmenü Als Administrator ausführen.
    2. Gehen Sie zu Start > Windows PowerShell. Klicken Sie mit der rechten Maustaste auf Windows PowerShell und wählen Sie Als Administrator ausführen, um sicherzustellen, dass Sie PowerShell-Befehle ohne Einschränkungen ausführen können.
  2. Aktivieren Sie das Ausführen von Skripten (es ist besser, diesen Befehl am Anfang der Vorbereitung von PowerShell zum Verwalten von Exchange Online und Office 365 auszuführen), da Sie andernfalls in Zukunft beim Ausführen des Befehls Import-PSSession den Fehler erhalten:

    Import-PSSession: Dateien können nicht geladen werden, da das Ausführen von Skripten auf diesem System deaktiviert wurde. Geben Sie ein gültiges Zertifikat an, mit dem die Dateien signiert werden können.

  3. Um Skripte auszuführen, muss die Ausführungsrichtlinie auf RemoteSigned gesetzt sein.

    Set-ExecutionPolicy RemoteSigned

  4. Drücken Sie Y, um die Richtlinienänderung zu bestätigen, wenn Sie dazu aufgefordert werden. Sie können auch den Befehl Set-ExecutionPolicy Unrestricted verwenden, um die Richtlinie Unrestricted zu verwenden.

    Standardmäßig ist der Ausführungsrichtlinienmodus Restricted.

  5. Führen Sie den Befehl in PowerShell aus, um Anmeldeinformationen zu erhalten, und geben Sie Ihren Administrator-Login/Benutzernamen im Popup-Fenster ein, um auf Exchange Online zuzugreifen. Der Benutzer muss globale Administratorberechtigungen in Office 365 haben.

    $Credential=Get-Credential
    Die eingegebenen Anmeldeinformationen werden in der Variablen gespeichert und im nächsten Befehl als $Credential verwendet.

  6. Sie müssen eine Remotesitzung mit dem Cmdlet New-PSSession erstellen und den folgenden Befehl ausführen:

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

    Beachten Sie, dass in diesem Befehl die Ziel-URL des Exchange Online-Servers in der Cloud festgelegt ist, der die Anfrage akzeptieren muss. Nach Ausführung des Befehls stellen die Microsoft Office 365-Cloudserver Ihnen Zugriff auf den entsprechenden Exchange Online-Virtualserver bereit, der mit Ihrem Konto verknüpft ist.

  7. Die Exchange Online PowerShell-Cmdlets müssen mit dem Befehl in die aktuelle Sitzung importiert werden:

    Import-PSSession $Session

  8. Sie können die Fortschrittsanzeige sehen, während die Befehle empfangen werden.
  9. Nach erfolgreicher Ausführung des Befehls erhalten Sie folgende Nachricht.
    Hinweis:
    Wenn Sie die MFA für Ihr Konto verwenden, funktionieren die oben erklärten Standard-Cmdlets nicht. Wenn Sie eine Verbindung zu Exchange Online in PowerShell unter Verwendung von MFA herstellen möchten, führen Sie den folgenden Befehl aus:

    Connect-EXOPSSession -UserPrincipalName IHRE_UPN

    Wo IHRE_UPN (Benutzerprinzipalname) der Name des Office 365-Kontos ist, das Sie verwenden. Sie müssen möglicherweise das Exchange Online Remote PowerShell-Modul von Microsoft installieren. Beachten Sie, dass bei Verwendung dieses Moduls die Sitzung nach einer Stunde endet, was für die Ausführung langer Skripte möglicherweise unpraktisch ist. Erwägen Sie die Verwendung von vertrauenswürdigen IP-Adressen (d. h. die IP-Adressen Ihrer Organisation), um die MFA beim Verbinden vom Netzwerk Ihres Unternehmens mit Exchange Online PowerShell zu umgehen. MFA (Multi-Faktor-Authentifizierung) ist die erweiterte Authentifizierungsmethode, die eine zweite Sicherheitsebene hinzufügt. Nach Eingabe eines Passworts wird der Bestätigungscode an das Mobiltelefon des Benutzers gesendet, und der Benutzer muss den Bestätigungscode eingeben, um das Konto zu überprüfen und Zugriff auf die Office 365-Cloud-Dienste zu erhalten.

  10. Wenn du dich einmal mit Office 365 und Exchange Online verbunden hast, kannst du deine Office 365-Cloud-Umgebung verwalten. Lass uns überprüfen, ob wir uns richtig mit Exchange Online verbunden haben und z. B. die Postfächer der Benutzer auflisten.

    Get-Mailbox

    Du kannst alle verfügbaren Cmdlets für Exchange Online PowerShell mit dem folgenden Befehl auflisten:

    Get-Command -Modul tmp*

    Die Namen der Exchange Online PowerShell-Cmdlets werden nicht konvertiert.

  11. Wenn Sie Ihre Arbeit mit Exchange 365 beenden, trennen Sie die Sitzung. Dies ist die empfohlene Praxis.

    Remove-PSSession $Session

    Leider werden nach Ausführung dieses Befehls keine Nachrichten angezeigt. Sie können überprüfen, ob die Sitzung getrennt ist, indem Sie den Befehl Get-MailBox ausführen. Wenn die Sitzung getrennt ist, erhalten Sie den Fehler, der erklärt, dass Sie Exchange Online-Cmdlets nach dem Trennen nicht ausführen können.

Warum sollten Sie die Sitzung trennen? Nun, einfach, weil die Anzahl der gleichzeitig geöffneten aktiven Sitzungen auf drei begrenzt ist. Wenn Sie drei Exchange Online PowerShell-Sitzungen gleichzeitig öffnen und keine von ihnen trennen, wenn sie nicht verwendet werden, müssen Sie darauf warten, dass eine dieser Sitzungen abläuft, bevor Sie erneut eine Verbindung zu Exchange Online PowerShell von einer neuen PowerShell-Konsole herstellen können.

Automatisierte Konfiguration

Nun, da Sie das Prinzip kennen, wie man manuell eine Verbindung zu Exchange Online PowerShell herstellt, können Sie die automatisierte Methode verwenden. Der Vorteil dieser Methode ist die geringere Anzahl von Befehlen, die Sie eingeben sollten.

  1. Download Sie das Skript von der Microsoft-Website. Der Name der Skriptdatei lautet in diesem Fall ConnectExchangeOnlinePowerShell.ps1.
  2. Gehen Sie zum Verzeichnis, in dem das Skript gespeichert ist; in unserem Beispiel wird das Skript in C:\temp_win\ gespeichert.
  3. Bevor Sie das Skript ausführen, bearbeiten Sie die Skriptausführungsrichtlinie (ähnlich wie bei der ersten Methode), andernfalls erhalten Sie den Fehler:

    Die Datei C:\temp_win\ConnectExchangeOnlinePowerShell.ps1 ist nicht digital signiert. Sie können dieses Skript auf dem aktuellen System nicht ausführen.

    Sie können die Bypass Ausführungsrichtlinie anwenden, um dieses Problem zu vermeiden:


    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

  4. Geben Sie Y ein, um die Änderung der Ausführungsrichtlinie zu bestätigen.
  5. Danach können Sie das Skript ausführen. Wenn Sie kein MFA verwenden, führen Sie das Skript ohne zusätzliche Argumente aus:

    .\ConnectExchangeOnlinePowerShell.ps1

    Wenn MFA (Multi-Factor Authentication) in Ihrer Office 365 Umgebung verwendet wird, versuchen Sie den Befehl:


    .\ConnectExchangeOnlinePowerShell.ps1 -MFA

  6. Nun, da Sie erfolgreich eine Verbindung zu Exchange Online hergestellt haben, können Sie Ihre Benutzerkonten, deren Postfächer usw. verwalten. Zum Beispiel können Sie die Postfächer Ihrer Benutzer auflisten:

    Get-Mailbox

    Dieses Skript kann verwendet werden, um Aufgaben zu planen und zu automatisieren. Zum Beispiel können Sie eine Verbindung zu Exchange Online herstellen, ohne Anmeldeinformationen im interaktiven Fenster wie oben angezeigt einzugeben. Sie können Ihren Benutzernamen und Ihr Passwort in der Befehlszeile als Befehlsoptionen eingeben, wenn Sie das Skript ausführen:


    ./ConnectExchangeOnlinePowerShell.ps1 -Benutzername admin@ihre_domain.com -Passwort ihr_passwort

    Beachten Sie, dass das Eingeben von Passwörtern als Klartext in der Befehlszeile möglicherweise nicht sicher ist.

  7. Wenn Sie mit Exchange Online in PowerShell fertig sind, vergessen Sie nicht, die Sitzung zu beenden:

    ./ConnectExchangeOnlinePowerShell.ps1 -Trennen

Alternativmethode

Betrachten wir eine weitere Methode, die verwendet werden kann, um eine Verbindung zu Exchange Online PowerShell herzustellen. Diese Methode kann als Modifikation der ersten Methode betrachtet werden.

  1. Erstellen Sie ein neues Profil für PowerShell mit der Funktion:

    New-item -type file -force $profil

  2. Bearbeiten Sie die Profilkonfigurationsdatei im Texteditor, um die Funktion mit dem Titel Connect-EXOnline hinzuzufügen:

    notepad $profil

  3. Fügen Sie den folgenden Inhalt zur PowerShell-Profilkonfigurationsdatei hinzu und ändern Sie [email protected] in Ihren Kontonamen, dann speichern Sie die Textdatei.

    Funktion Verbinden-EXOnline
    {
    $Anmeldeinformationen = Get-Credential -Anmeldeinformationen [email protected]
    Write-Output „Die Exchange Online-Cmdlets werden abgerufen“
    $Sitzung = New-PSSession -Verbindungsadresse https://outlook.office365.com/powershell-liveid/ `
    -Konfigurationsname Microsoft.Exchange -Anmeldeinformationen $Anmeldeinformationen `
    -Authentifizierung Basic -ErlaubeWeiterleitung
    Import-PSSession $Sitzung
    }

  4. Schließen Sie das aktuelle PowerShell-Fenster und öffnen Sie ein neues PowerShell-Fenster als Administrator. Führen Sie den Befehl aus, um eine Verbindung mit Exchange Online PowerShell herzustellen:

    Connect-ExOnline
    Geben Sie Ihr Passwort im Popup-Fenster ein.

  5. Wenn Sie mit Exchange Online PowerShell fertig sind, beenden Sie die Sitzung mit dem Befehl:

    Get-PSSession | Remove-PSSession

Conclusion

Exchange Online PowerShell ist eine gute Alternative zur Exchange Admin Center-Web-Oberfläche. Mit Office 365 PowerShell und Exchange Online PowerShell können Sie Bulk-Operationen und Aktionen mit mehreren Objekten durch Verwendung eines einzigen Befehls oder Skripts durchführen. Der heutige Blogbeitrag hat behandelt, wie Sie eine Verbindung zu Exchange Online PowerShell herstellen können, indem Sie drei Methoden verwenden, von denen eine automatisiert ist. Das Arbeitsprinzip jeder Methode ist ähnlich und besteht aus drei Hauptschritten: Erstellen einer Remote-PowerShell-Sitzung, Authentifizierung und Importieren von Exchange Online PowerShell-Cmdlets.

Eine wichtige Empfehlung ist, dass Sie die Remote-PowerShell-Sitzung trennen, wenn Sie die Arbeit mit Exchange Online PowerShell beendet haben, um zu vermeiden, dass alle Sitzungen belegt sind und das Öffnen einer neuen Remote-Exchange-Online-PowerShell-Sitzung nicht möglich ist. Das Vorhandensein von Exchange Server in der Cloud ist eine zuverlässige Lösung, aber auch in diesem Fall wird empfohlen, dass Sie eine Sicherung Ihres Exchange-Servers erstellen, um Ihre Daten vor versehentlicher Löschung und anderen Katastrophen zu schützen.

Source:
https://www.nakivo.com/blog/how-to-connect-office-365-exchange-online-powershell/