Verwenden von Exchange Online PowerShell mit moderner Authentifizierung mithilfe des V2-Moduls

Das Exchange Online PowerShell V2-Modul (Kurzform "EXO V2-Modul") ermöglicht Administratoren das Herstellen einer Verbindung mit ihrer Exchange Online-Umgebung in Microsoft 365 zum Abrufen von Daten, Erstellen neuer Objekte, Aktualisieren bestehender Objekte, Entfernen von Objekten sowie zum Konfigurieren von Exchange Online und dessen Features.

Melden von Fehlern und Problemen

Wenn Sie ein Problem melden, achten Sie darauf, die Protokolldateien in Ihre E-Mail-Nachricht einzuschließen. Um die Protokolldateien zu generieren, ersetzen Sie <Path to store log file> durch den gewünschten Ausgabeordner, und führen Sie den folgenden Befehl aus:

Connect-ExchangeOnline -EnableErrorReporting -LogDirectoryPath <Path to store log file> -LogLevel All

Funktionsweise des EXO V2-Moduls

Das Exchange Online PowerShell V2-Modul enthält ein paar neue Cmdlets, die für den Massenabruf von Daten optimiert sind (stellen Sie sich vor: Tausende und Abertausende von Objekten). Solange Sie keine Sitzung zum Herstellen einer Verbindung mit Ihrer Exchange Online-Organisation erstellt haben, werden diese neuen Cmdlets nur im Modul angezeigt. Nach dem Herstellen einer Verbindung mit Ihrer Exchange Online-Organisation werden alle älteren Remote-PowerShell-Cmdlets angezeigt.

Das EXO V2-Modul verwendet für alle Cmdlets moderne Authentifizierung. Die Standardauthentifizierung kann im EXO V2-Modul nicht verwendet werden, Sie müssen aber trotzdem die Einstellung für die Standardauthentifizierung in WinRM wie weiter unten in diesem Thema beschrieben konfigurieren.

Die neuen Cmdlets im EXO V2-Modul sind dafür vorgesehen, ihre älteren, weniger effizienten Äquivalente zu ersetzen. Die ursprünglichen Cmdlets sind aber weiterhin zum Zweck der Abwärtskompatibilität im EXO V2-Modul verfügbar, nachdem Sie eine Sitzung zum Herstellen einer Verbindung mit Ihrer Exchange Online-Organisation erstellt haben.

In der folgenden Tabelle sind die neuen Cmdlets im EXO V2-Modul aufgelistet:

Neues Cmdlet im EXO V2-Modul Älteres verwandtes Cmdlet
Connect-ExchangeOnline Connect-EXOPSSession
oder
New-PSSession
Get-EXOMailbox Get-Mailbox
Get-EXORecipient Get-Recipient
Get-EXOCasMailbox Get-CASMailbox
Get-EXOMailboxPermission Get-MailboxPermission
Get-EXORecipientPermission Get-RecipientPermission
Get-EXOMailboxStatistics Get-MailboxStatistics
Get-EXOMailboxFolderStatistics Get-MailboxFolderStatistics
Get-EXOMailboxFolderPermission Get-MailboxFolderPermission
Get-EXOMobileDeviceStatistics Get-MobileDeviceStatistics
Disconnect-ExchangeOnline Remove-PSSession
Connect-IPPSSession Connect-IPPSSession

Installieren und Verwalten des Exchange Online PowerShell v2-Moduls

Sie können das EXO V2-Modul aus dem PowerShell-Katalog hier herunterladen.

Note

Derzeit ist die neueste Version von PowerShell, die für das EXO V2-Modul unterstützt wird, PowerShell 5.1. Die Arbeit für die Unterstützung späterer Versionen von PowerShell (und laut Definition die Unterstützung von Linux oder Mac) ist in Gang.

Was sollten Sie wissen, bevor Sie beginnen?

  • Geschätzte Zeit bis zum Abschließen des Vorgangs: 5 Minuten

  • Sie können folgende Versionen von Windows verwenden:

    • Windows 10
    • Windows 8.1
    • Windows Server 2019
    • Windows Server 2016
    • Windows Server 2012 oder Windows Server 2012 R2
    • Windows 7 Service Pack 1 (SP1)*
    • Windows Server 2008 R2 SP1*

    * Diese Version von Windows hat das Ende des Supports erreicht und wird jetzt nur unterstützt, wenn sie in „Virtuelle Azure-Computer“ ausgeführt wird. Zur Verwendung dieser Version von Windows müssen Sie Microsoft .NET Framework 4.5 oder höher und dann das Windows Management Framework 5.1 installieren. Weitere Informationen finden Sie unter Windows Management Framework 5.1.

  • WinRM muss die Standardauthentifizierung zulassen (standardmäßig aktiviert). Die Kombination aus Benutzername und Kennwort wird nicht gesendet, der Header der Standardauthentifizierung ist jedoch erforderlich, um das OAuth-Token der Sitzung zu übermitteln, da die clientseitige WinRM-Implementierung keine Unterstützung für OAuth bietet.

    Hinweis: Sie müssen WinRM vorübergehend aktivieren, um die nachstehenden Befehle ausführen zu können. Sie können es durch Ausführen des Befehls winrm quickconfig aktivieren.

    Um zu überprüfen, ob die Standardauthentifizierung für WinRM aktiviert ist, führen Sie folgenden Befehl in einer Eingabeaufforderung (nicht in Windows PowerShell) aus:

    winrm get winrm/config/client/auth
    

    Wenn der Wert Basic = true nicht angezeigt wird, müssen Sie folgenden Befehl in einer Eingabeaufforderung (nicht in Windows PowerShell) ausführen, um die Standardauthentifizierung für WinRM zu aktivieren:

    winrm set winrm/config/client/auth @{Basic="true"}
    

    Hinweis: Wenn Sie den Befehl lieber in Windows PowerShell ausführen möchten, schließen Sie diesen Teil des Befehls in Anführungszeichen ein: '@{Basic="true"}'.

    Wenn die Standardauthentifizierung für WinRM deaktiviert ist, wird beim Versuch, eine Verbindung herzustellen, der folgende Fehler gemeldet:

    Die Anforderung kann vom WinRM-Client nicht verarbeitet werden. Die Standardauthentifizierung ist in der Clientkonfiguration zurzeit deaktiviert. Ändern Sie die Clientkonfiguration, und versuchen Sie es erneut.

Installieren des EXO V2-Moduls

Führen Sie die folgenden Schritte aus, um das EXO V2-Modul zum ersten Mal zu installieren:

  1. Installieren oder aktualisieren Sie das PowerShellGet-Modul wie unter Installieren von PowerShellGet beschrieben.

  2. Windows PowerShell muss zum Ausführen von Skripts konfiguriert werden. Standardmäßig ist dies nicht der Fall. Um festzulegen, dass alle PowerShell-Skripts, die Sie aus dem Internet herunterladen, von einem vertrauenswürdigen Herausgeber signiert sein müssen, führen Sie den folgenden Befehl in einem Windows PowerShell-Fenster mit erhöhten Rechten aus:

    Set-ExecutionPolicy RemoteSigned
    

    Anmerkungen:

    • Sie müssen diese Einstellung nur einmal auf Ihrem Computer konfigurieren. Weitere Informationen zu Ausführungsrichtlinien finden Sie hier.

    • Wenn Sie diesen Schritt nicht ausführen, wird beim Versuch, eine Verbindung herzustellen, die folgende Fehlermeldung angezeigt:

      Dateien können nicht geladen werden, weil das Ausführen von Skripts auf diesem System deaktiviert ist. Stellen Sie ein gültiges Zertifikat bereit, mit dem die Dateien signiert werden sollen.

  3. Schließen Sie das Windows PowerShell-Fenster mit erhöhten Rechten, und öffnen Sie es erneut, damit die Änderungen aus den vorherigen Schritten übernommen werden.

  4. Führen Sie in einem Windows PowerShell-Fenster mit erhöhten Rechten den folgenden Befehl aus:

    Install-Module -Name ExchangeOnlineManagement
    

    Geben Sie Y ein, um den Lizenzvertrag anzunehmen.

Aktualisieren des EXO V2-Moduls

Wenn das EXO V2-Modul bereits auf Ihrem Computer installiert ist, können Sie die nachstehenden Befehle ausführen, um die aktuell installierte Version anzuzeigen und sie auf die neueste Version zu aktualisieren.

  1. Führen Sie zum Anzeigen der aktuell installierten Version des EXO V2-Moduls die folgenden Befehle aus:

    Import-Module ExchangeOnlineManagement; Get-Module ExchangeOnlineManagement
    
  2. Führen Sie den folgenden Befehl aus, um das EXO V2-Modul auf die neueste Version zu aktualisieren, die im PowerShell-Katalog zur Verfügung steht:

    Update-Module -Name ExchangeOnlineManagement
    

    Geben Sie Y ein, um den Lizenzvertrag anzunehmen.

    Hinweis: Wenn im Zusammenhang mit dem PowerShellGet-Modul die nachstehende Fehlermeldung angezeigt wird, lesen Sie Schritt 1 im vorherigen Abschnitt Installieren des EXO V2-Moduls, um das PowerShellGet-Modul auf die neueste Version zu aktualisieren.

    Das angegebene Modul "ExchangeOnlineManagement" mit PowerShellGetFormatVersion "<version>" wird von der aktuellen PowerShellGet-Version nicht unterstützt. Rufen Sie die neueste Version des PowerShellGet-Moduls zum Installieren dieses Moduls, "ExchangeOnlineManagement", ab.

    Wenn das PowerShellGet-Modul aktualisiert werden muss, müssen Sie das Windows PowerShell-Fenster schließen und erneut öffnen, bevor Sie versuchen, das ExchangeOnlineManagement-Modul zu aktualisieren.

  3. Führen Sie die folgenden Befehle aus, um zu überprüfen, ob das Update erfolgreich war:

    Import-Module ExchangeOnlineManagement; Get-Module ExchangeOnlineManagement
    

Deinstallieren des EXO V2-Moduls

Wenn Sie das Modul deinstallieren möchten, führen Sie den folgenden Befehl aus:

Uninstall-Module -Name ExchangeOnlineManagement

Tip

Liegt ein Problem vor? Bitten Sie in den Exchange-Foren um Hilfe. Sie finden die Foren unter folgenden Links: Exchange Online oder Exchange Online Protection.

Herstellen einer Verbindung mit Exchange Online unter Verwendung des EXO V2-Moduls

Note

Wenn für Ihr Konto die mehrstufige Authentifizierung (Multi-Factor Authentication, MFA) verwendet wird, überspringen Sie den ersten Schritt (das Cmdlet Get-Credential unterstützt keine MFA-aktivierten Konten).

  1. Öffnen Sie auf Ihrem lokalen Computer ein Windows PowerShell-Fenster, und führen Sie den folgenden Befehl aus:

    $UserCredential = Get-Credential
    

    Geben Sie im Dialogfeld Bei Windows PowerShell anmelden Ihr Geschäfts-, Schul- oder Unikonto und das Kennwort ein, und klicken Sie dann auf OK.

  2. Führen Sie einen der folgenden Befehle aus:

    • Konten ohne aktivierte MFA:

      Connect-ExchangeOnline -Credential $UserCredential -ShowProgress $true
      
    • Konten mit aktivierter MFA: Ersetzen Sie <UPN> durch Ihr Konto im Benutzerprinzipalnamenformat (z. B. navin@contoso.com), und führen Sie den folgenden Befehl aus:

      Connect-ExchangeOnline -UserPrincipalName <UPN> -ShowProgress $true
      

Ausführliche Informationen zu Syntax und Parametern finden Sie unter Connect-ExchangeOnline.

Eigenschaften und Eigenschaftensätze im EXO V2-Modul

Die Ausgabe von herkömmlichen Exchange Online-Cmdlets gibt alle möglichen Objekteigenschaften zurück, darunter viele Eigenschaften, die häufig leer sind oder in vielen Szenarien gar nicht erforderlich sind. Wenn eine große Anzahl von leeren und nicht benötigten Eigenschaften zurückgegeben wird, führt dies zu verminderter Leistung (mehr Serverrechenaufwand und zusätzliche Netzwerklast). Es ist selten erforderlich, dass die Cmdlet-Ausgabe die vollzähligen Eigenschaften enthält.

In den EXO V2-Modul-Cmdlets sind die Ausgabeeigenschaften kategorisiert. Statt allen Eigenschaften gleiche Bedeutung zuzuschreiben und sie in allen Szenarien zurückzugeben, wurden bestimmte verwandte Eigenschaften in Eigenschaftensätze kategorisiert. Einfach ausgedrückt: Diese Eigenschaftensätze sind Buckets mit zwei oder mehr verwandten Eigenschaften für das Cmdlet.

Eigenschaftensätze werden in den EXO V2-Modul-Cmdlets durch folgende Parameter gesteuert:

  • PropertySets: Dieser Parameter akzeptiert einen oder mehrere verfügbare, durch Kommas getrennte Eigenschaftensatznamen.

    In diesem Beispiel werden die Eigenschaften zurückgegeben, die in den Archiv- und benutzerdefinierten Eigenschaftensätzen verfügbar sind:

    Get-EXOMailbox -PropertySets Archive,Custom
    
  • Properties: Dieser Parameter akzeptiert einen oder mehrere, durch Kommas getrennte Eigenschaftennamen.

    In diesem Beispiel werden die angegebenen Eigenschaften zurückgegeben:

    Get-EXOMailbox -Properties LitigationHoldEnabled,AuditEnabled
    

    Hinweis: Cmdlets, bei denen nur eine kleine Anzahl von Ausgabeeigenschaften zurückgegeben wird, verfügen nicht über die PropertySet- oder Properties-Parameter.

Sie können PropertySets und Properties im selben Befehl verwenden. Beispiel:

Get-EXOMailbox -Properties IsMailboxEnabled,SamAccountName -PropertySets Delivery
Get-EXOCASMailbox -Properties EwsEnabled, MAPIBlockOutlookNonCachedMode -PropertySets ActiveSync

Außerdem haben wir einen Minimum-Eigenschaftssatz (oder minset) in die verfügbaren Eigenschaftensätze einbezogen, der einen absoluten Mindestsatz von Eigenschaften für die Cmdlet-Ausgabe enthält.

  • Wenn Sie die PropertySets- oder Properties-Parameter nicht verwenden, erhalten Sie automatisch die Eigenschaften im Minimum-Eigenschaftensatz.

  • Wenn Sie die PropertySets- oder Properties-Parameter verwenden, erhalten Sie die angegebenen Eigenschaften und die Eigenschaften im Minimum-Eigenschaftensatz.

In beiden Fällen wird die Ausgabe des Cmdlets viel weniger Eigenschaften enthalten, und die Rückgabe der Ergebnisse wird erheblich schneller erfolgen.

In diesem Beispiel werden die Eigenschaften im Minimum-Eigenschaftensatz für die ersten 10 Postfächer zurückgegeben.

Get-EXOMailbox -ResultSize 10

Im Gegensatz dazu würde das gleiche Get-Mailbox-Cmdlet mindestens 230 Eigenschaften für die selben zehn Postfächer zurückgeben.

Ausführliche Informationen zu den Eigenschaftensätzen, die in EXO V2-Modul-Cmdlets verfügbar sind, finden Sie unter Eigenschaftensätze in Exchange Online PowerShell V2-Cmdlets oder in den Referenzthemen zu den einzelnen EXO V2 Module-Cmdlets.

Note

Sie können zwar alle Eigenschaften für ein Objekt abrufen, indem Sie den Parameter PropertySets mit dem Wert "All" verwenden, wir raten jedoch dringend davon ab, da dadurch das Cmdlet verlangsamt und die Zuverlässigkeit verringert wird. Verwenden Sie immer die PropertySets- und Properties-Parameter, um die Mindestanzahl von Eigenschaften abzurufen.

Weitere Informationen zum Filtern im EXO V2-Modul finden Sie unter Filter im Exchange Online V2-Modul.

Anmerkungen zu dieser Version

Aktuelle Version: Version 1.0.1

  • Hierbei handelt es sich um die GA-Version (allgemeine Verfügbarkeit) des EXO PowerShell V2-Moduls. Es ist stabil und für die Verwendung in Produktionsumgebungen einsatzbereit.

  • Das Cmdlet "Get-ExoMobileDeviceStatistics" unterstützt nun den Parameter "Identity".

  • Erhöhte Zuverlässigkeit der automatischen Wiederbindung von Sitzungen in bestimmten Fällen, in denen ein Skript für ~50 Minuten ausgeführt wurde und aufgrund eines Fehlers in der Logik für die automatische Wiederverbindung eine Fehlermeldung vom Typ "Cmdlet nicht gefunden" angezeigt wurde.

  • Datentypfehler bei zwei häufig verwendeten "User" und "MailboxFolderUser"-Attributen zur einfachen Migration von Skripts behoben.

  • Verbesserte Unterstützung von Filtern, da jetzt vier weitere Operatoren unterstützt werden: EndsWith, Contains, Not und NotLike support. Überprüfen Sie die Onlinedokumentation im Hinblick auf nicht unterstützte Attribute.

Frühere Versionen

Version 0.4578.0

  • Unterstützung für die Konfiguration von Briefing-E-Mails für Ihre Organisation auf Benutzerebene mit Set-UserBriefingConfig- und Get-UserBriefingConfig-Cmdlets hinzugefügt.

  • Unterstützung für die Sitzungsbereinigung mithilfe des Disconnect-ExchangeOnline-Cmdlets. Bei diesem Cmdlet handelt es sich um das V2-Äquivalent von Get-PSSession | Remove-PSSession. Zusätzlich zum Löschen von Sitzungsobjekten und lokalen Dateien wird auch das Zugriffstoken aus dem Cache entfernt, das für die Authentifizierung bei V2-Cmdlets verwendet wird.

  • Sie können FolderId jetzt als Identitätsparameter in Get-EXOMailboxFolderPermission verwenden. Sie können den FolderId-Wert mithilfe von Get-MailboxFolder abrufen. Beispiel:

    Get-MailboxFolderPermission -Identity <UPN>:<Folder-Path>

    Get-MailboxFolderPermission -Identity <UPN>:\<Folder-Id>

  • Die Zuverlässigkeit von Get-EXOMailboxStatistics wurde verbessert, da bestimmte Anforderungsroutingfehler behoben wurden, die zu Fehlern geführt haben.

  • Optimierte Speichernutzung, wenn eine Sitzung durch erneutes Verwenden eines vorhandenen Moduls mit einer neuen Sitzung erstellt wird, statt jedes Mal, wenn eine Sitzung importiert wird, eine neue Sitzung zu erstellen.

Version 0.4368.1

  • Unterstützung für Security & Compliance Center PowerShell-Cmdlets mithilfe des Cmdlets Connect-IPPSSession hinzugefügt.

  • Blenden Sie das Ankündigungsbanner mit dem Schalter ShowBanner aus. Führen Sie den folgenden Befehl aus, um das Banner auszublenden:

    Connect-ExchangeOnline -ShowBanner:$false
    
  • Beenden Sie die Ausführung des Cmdlets für Client-Ausnahmen.

  • Remote PowerShell enthielt mehrere komplexe Datentypen, die in EXO-Cmdlets absichtlich nicht unterstützt wurden, um die Leistung zu verbessern. Unterschiede bei nicht komplexen Datentypen zwischen Remote-PowerShell-Cmdlets und V2-Cmdlets wurden behoben, um eine nahtlose Migration von Verwaltungsskripts zu ermöglichen.

Version 0.3582.0

  • Unterstützung von Präfixen während der Erstellung einer Sitzung.

    • Sie können jeweils nur eine Sitzung erstellen, die Präfix-Cmdlets enthält.
    • Beachten Sie, dass den EXO V2-Cmdlets kein Präfix vorangestellt wird, da sie bereits das Präfix "EXO" aufweisen; verwenden Sie EXO also nicht als Präfix.
  • Verwenden Sie EXO V2-Cmdlets, auch wenn die WinRM-Standardauthentifizierung auf dem Clientcomputer deaktiviert ist. Beachten Sie, dass Remote-PowerShell-Cmdlets die WinRM-Standardauthentifizierung erfordern, und dass sie nicht verfügbar sind, wenn sie deaktiviert ist.

  • Der Identity-Parameter für V2-Cmdlets unterstützt nun auch Name und Alias. Beachten Sie, dass die Verwendung von Alias oder Name die Leistung von V2-Cmdlets verringert. Deshalb empfiehlt es sich nicht, sie zu verwenden.

  • Ein Problem wurde behoben, bei dem sich der Datentyp der vom V2-Cmdlet zurückgegebenen Attribute von jenem von Remote-PowerShell-Cmdlets unterschied. Es gibt noch einige Attribute, die unterschiedliche Datentypen aufweisen, und wir planen, das in den kommenden Monaten anzugehen.

  • Bug behoben: Ein häufiges Problem bei Wiederverbindungen von Sitzungen, wenn Connect-ExchangeOnline mit Credentials oder UserPrincipalName aufgerufen wurde.

Version 0.3555.1

  • Ein Fehler wurde behoben, bei dem mittels Pipeline übertragene Cmdlets aufgrund eines Authentifizierungsproblems mit folgendem Fehler fehlschlugen:

    Die Pipeline kann nicht aufgerufen werden, da sich der Runspace nicht im geöffneten Zustand befindet. Der aktuelle Status des Runspace ist "geschlossen".

Version 0.3527.4

  • Aktualisierte Get-Help-Inhalte.

  • Es wurde ein Problem in Get-Help behoben, bei dem der Parameter -Online auf eine nicht vorhandene Seite mit Fehlercode 400 umleitete.

Version 0.3527.3

  • Unterstützung für die Verwaltung von Exchange für einen anderen Mandanten mittels Delegierungsfluss hinzugefügt.

  • Funktioniert zusammen mit anderen PowerShell-Modulen in einem einzigen PS-Fenster.

  • Unterstützung für Positionsparameter wurde hinzugefügt.

  • Das Feld "Datum/Uhrzeit" unterstützt jetzt das Clientgebietsschema.

  • Bug behoben: PSCredential leer, wenn während Connect-ExchangeOnline übergeben.

  • Bug behoben: Client-Modulfehler, wenn Filter $null enthielt.

  • Sitzungen, die im EXO V2-Modul erstellt wurden, weisen nun Namen auf (Benennungsmuster: ExchangeOnlineInternalSession_%SomeNumber%).

  • Bug behoben: Remote-PowerShell-Cmdlets schlugen fehl aufgrund des Zeitunterschieds zwischen Ablauf des Tokens und PSSession-Leerlauf.

  • Größeres Sicherheitsupdate.

  • Bugfixes und Verbesserungen.