Informationen zum Exchange Online PowerShell-Moduls
Das Exchange Online PowerShell-Modul verwendet moderne Authentifizierung und arbeitet mit mehrstufiger Authentifizierung (Multi-Factor Authentication, MFA) zum Herstellen einer Verbindung mit allen Exchange-bezogenen PowerShell-Umgebungen in Microsoft 365: Exchange Online PowerShell, Security & Compliance PowerShell und eigenständiger Exchange Online Protection (EOP) PowerShell.
Hinweis
Version 2.0.5 und früher wird als Exchange Online PowerShell V2-Modul (abgekürzt als EXO V2-Modul) bezeichnet. Version 3.0.0 und höher wird als Exchange Online PowerShell V3-Modul (abgekürzt als EXO V3-Modul) bezeichnet.
Verbindungsanweisungen zum Verwenden des Moduls finden Sie in den folgenden Artikeln:
- Herstellen einer Verbindung mit Exchange Online PowerShell
- Herstellen einer Verbindung mit Security & Compliance PowerShell
- Verbinden mit PowerShell in Exchange Online Protection
In Rest dieses Artikels werden die Funktionsweise des Moduls, seine Installation und Wartung sowie die im Modul verfügbaren optimierten Exchange Online-Cmdlets beschrieben.
Updates für das EXO V3-Modul
Version 3.0.0 oder höher wird als EXO V3-Modul bezeichnet. Das EXO V3-Modul verbessert die Verlaufsfunktionen des EXO V2-Moduls (Version 2.0.5 und früher) mit den folgenden Features:
Die zertifikatbasierte Authentifizierung (auch als CBA oder reine App-Authentifizierung bezeichnet) ist für Security & Compliance PowerShell verfügbar.
Cmdlets, die von der REST-API unterstützt werden, sind in den folgenden PowerShell-Umgebungen verfügbar, die auf der Version des EXO V3-Moduls basieren:
- Exchange Online PowerShell: v3.0.0 oder höher.
- Sicherheit & Compliance-PowerShell: v3.2.0-Preview4 oder höher.
REST-API-Cmdlets haben die folgenden Vorteile gegenüber ihren historischen Gegenstücken:
- Sicherer: Rest-API-Cmdlets verfügen über integrierte Unterstützung für die moderne Authentifizierung und basieren nicht auf der PowerShell-Remotesitzung, sodass PowerShell auf Ihrem Clientcomputer keine Standardauthentifizierung in WinRM benötigt.
- Zuverlässiger: REST-API-Cmdlets behandeln vorübergehende Fehler mit integrierten Wiederholungen, sodass Fehler oder Verzögerungen minimiert werden. Beispiel:
- Fehler aufgrund von Netzwerkverzögerungen.
- Verzögerungen aufgrund großer Abfragen, deren Abschluss sehr lange dauert.
- Bessere Leistung: Die Verbindung vermeidet das Einrichten eines PowerShell-Runspaces.
Die Vorteile von REST-API-Cmdlets werden in der folgenden Tabelle beschrieben:
PowerShell-Remote-Cmdlets Get-EXO*-Cmdlets REST-API-Cmdlets Sicherheit Am wenigsten sicher Hohe Sicherheit Hohe Sicherheit Leistung Geringe Leistung Hohe Leistung Mittlere Leistung Zuverlässigkeit Am wenigsten zuverlässig Hohe Zuverlässigkeit Hohe Zuverlässigkeit Funktionalität Alle Parameter und Ausgabeeigenschaften verfügbar Eingeschränkte Parameter und Ausgabeeigenschaften verfügbar Alle Parameter und Ausgabeeigenschaften verfügbar REST-API-Cmdlets haben die gleichen Cmdlet-Namen und funktionieren genau wie ihre PowerShell-Remote-Entsprechungen, sodass Sie keines Ihrer Skripts aktualisieren müssen.
In Exchange Online PowerShell werden praktisch alle verfügbaren PowerShell-Remote-Cmdlets von der REST-API unterstützt.
In Security & Compliance Center PowerShell mit v3.2.0-Preview4 oder höher des Moduls werden viele, aber nicht alle verfügbaren PowerShell-Remote-Cmdlets von der REST-API unterstützt.
In Exchange Online PowerShell und in PowerShell zur Sicherheitskonformität & werden standardmäßig REST-API-Verbindungen verwendet. Sie müssen den Schalter UseRPSSession im Befehl Connect-ExchangeOnline oder Connect-IPPSSession verwenden, um im PowerShell-Remotemodus auf Cmdlets zuzugreifen.
Beachten Sie folgendes, wenn Sie im Remote-PowerShell-Modus eine Verbindung mit Exchange Online PowerShell oder PowerShell zur Sicherheitskonformität & herstellen:
- Die Standardauthentifizierung in WinRM ist auf Ihrem Clientcomputer erforderlich.
- Wenn Sie keine Verbindung im Remote-PowerShell-Modus herstellen, haben Sie nur Zugriff auf REST-API-Cmdlets.
- Das Ende der PowerShell-Remoteunterstützung in Exchange Online PowerShell wurde angekündigt. Weitere Informationen finden Sie unter Ankündigung der Einstellung des Remote PowerShell-Protokolls (RPS) in Exchange Online PowerShell.
Einige REST-API-Cmdlets in Exchange Online PowerShell wurden mit dem experimentellen UseCustomRouting-Schalter aktualisiert. Dieser Schalter wird den Befehl direkt an den erforderlichen Postfachserver weiterleiten, und die Gesamtleistung kann verbessert werden.
Wenn Sie den UseCustomRouting-Schalter verwenden, müssen Sie für die Identität des Postfachs die folgenden Werte verwenden:
- Benutzerprinzipalname (User Principal Name, UPN)
- E-Mail-Adresse
- Postfach-GUID
Der UseCustomRouting-Schalter ist nur für die folgenden REST-API-Cmdlets in Exchange Online PowerShell verfügbar:
- Get-Clutter
- Get-FocusedInbox
- Get-InboxRule
- Get-MailboxAutoReplyConfiguration
- Get-MailboxCalendarFolder
- Get-MailboxFolderPermission
- Get-MailboxFolderStatistics
- Get-MailboxMessageConfiguration
- Get-MailboxPermission
- Get-MailboxRegionalConfiguration
- Get-MailboxStatistics
- Get-MobileDeviceStatistics
- Get-UserPhoto
- Remove-CalendarEvents
- Set-Clutter
- Set-FocusedInbox
- Set-MailboxRegionalConfiguration
- Set-UserPhoto
Verwenden Sie den Schalter UseCustomRouting experimentell, und melden Sie alle Fehler, auf die Sie stoßen.
Verwenden Sie das Cmdlet Get-ConnectionInformation, um Informationen zu REST-basierten Verbindungen mit Exchange Online PowerShell und PowerShell zur Sicherheitskonformität & abzurufen. Dieses Cmdlet ist erforderlich, da das Cmdlet Get-PSSession in Windows PowerShell keine Informationen für REST-basierte Verbindungen zurückgibt.
Szenarien, in denen Sie Get-ConnectionInformation verwenden können, werden in der folgenden Tabelle beschrieben:
Szenario Erwartete Ausgabe Führen Sie vor dem Befehl Connect-ExchangeOnline oder Connect-IPPSSession aus. Gibt Nothing zurück. Führen Sie nach einem Connect-ExchangeOnline- oder Connect-IPPSSession-Befehl aus, der eine Verbindung im Remote-PowerShell-Modus herstellt. Gibt nichts zurück (verwenden Sie Get-PSSession). Führen Sie nach dem Befehl Connect-ExchangeOnline oder Connect-IPPSSession aus, der eine Verbindung im REST-API-Modus herstellt. Gibt ein Verbindungsinformationsobjekt zurück. Führen Sie nach mehreren REST-basierten Befehlen Connect-ExchangeOnline oder Connect-IPPSSession aus. Gibt eine Auflistung von Verbindungsinformationsobjekten zurück. Führen Sie nach mehreren Befehlen Connect-ExchangeOnline oder Connect-IPPSSession aus, die eine Verbindung im Remote-PowerShell-Modus und REST-API-Modus herstellen. Gibt ein Verbindungsinformationsobjekt für jede REST-basierte Sitzung zurück. Verwenden Sie den Schalter SkipLoadingFormatData im Cmdlet Connect-ExchangeOnline in REST-basierten Verbindungen, um das Laden von Formatdaten zu vermeiden und Connect-ExchangeOnline-Befehle schneller auszuführen.
Verbindungen im REST-API-Modus sind vom PowerShellGet-Modul abhängig.
Weitere Informationen zu den Neuerungen im EXO V3-Modul finden Sie weiter unten in diesem Artikel im Abschnitt Versionshinweise .
Melden von Fehlern und Problemen für das Exchange Online PowerShell-Modul
Hinweis
Öffnen Sie für allgemein verfügbare Versionen des Moduls ein Supportticket für probleme, die bei Ihnen auftreten. Verwenden Sie für Vorschauversionen des Moduls die in diesem Abschnitt beschriebene E-Mail-Adresse. Sie können die E-Mail-Adresse auch für Feedback und Vorschläge für allgemeine Verfügbarkeit und Vorschauversionen des Moduls verwenden.
Wenn Sie ein Problem unter exocmdletpreview[at]service[dot]microsoft[dot]com
melden, achten Sie darauf, die Protokolldateien in Ihre E-Mail-Nachricht einzuschließen. Um die Protokolldateien zu generieren, ersetzen Sie <Pfad zum Speichern der Protokolldatei> durch den gewünschten Ausgabeordner, und führen Sie den folgenden Befehl aus:
Connect-ExchangeOnline -EnableErrorReporting -LogDirectoryPath <Path to store log file> -LogLevel All
Hinweis
Die häufige Verwendung der Cmdlets Connect-ExchangeOnline und Disconnect-ExchangeOnline in einer einzelnen PowerShell-Sitzung oder einem einzelnen Skript kann zu einem Speicherverlust führen. Die beste Möglichkeit, dieses Problem zu vermeiden, besteht darin, den Parameter CommandName im Connect-ExchangeOnline-Cmdlet zu verwenden, um die in der Sitzung verwendeten Cmdlets einzuschränken.
Cmdlets im Exchange Online PowerShell-Modul
Alle Versionen des Moduls enthalten neun exklusive Get-EXO*-Cmdlets für Exchange Online PowerShell, die für die Geschwindigkeit in Massenabrufszenarien (Tausende von Objekten) optimiert sind. Die älteren verwandten PowerShell-Remote-Cmdlets sind weiterhin verfügbar.
Die verbesserten Exchange Online PowerShell-Cmdlets, die nur im Modul verfügbar sind, sind in der folgenden Tabelle aufgeführt:
Die verbindungsbezogenen Cmdlets im Modul sind in der folgenden Tabelle aufgeführt:
EXO-Modul-Cmdlet | Älteres verwandtes Cmdlet | Kommentare |
---|---|---|
Connect-ExchangeOnline | Connect-EXOPSSession in V1 des Moduls oder New-PSSession |
|
Connect-IPPSSession | Connect-IPPSSession in V1 des Moduls | |
Disconnect-ExchangeOnline | Remove-PSSession | |
Get-ConnectionInformation | Get-PSSession | Verfügbar in Version 3.0.0 oder höher. |
Verschiedene Exchange Online Cmdlets, die sich im Modul befinden, sind in der folgenden Tabelle aufgeführt:
Cmdlet | Kommentare |
---|---|
Get-DefaultTenantBriefingConfig | Weitere Informationen finden Sie unter Anhalten der Briefing-E-Mail von Microsoft Viva. |
Set-DefaultTenantBriefingConfig | Weitere Informationen finden Sie unter Anhalten der Briefing-E-Mail von Microsoft Viva. |
Get-DefaultTenantMyAnalyticsFeatureConfig | Verfügbar in v3.2.0-Preview1 oder höher. |
Set-DefaultTenantMyAnalyticsFeatureConfig | Verfügbar in v3.2.0-Preview1 oder höher. |
Get-MyAnalyticsFeatureConfig | Verfügbar in Version 2.0.4 oder höher. |
Set-MyAnalyticsFeatureConfig | Verfügbar in Version 2.0.4 oder höher. |
Get-UserBriefingConfig | Ersetzt durch Get-MyAnalyticsFeatureConfig. |
Set-UserBriefingConfig | Ersetzt durch Set-MyAnalyticsFeatureConfig. |
Get-VivaInsightsSettings | Verfügbar in v2.0.5 oder höher. |
Set-VivaInsightsSettings | Verfügbar in v2.0.5 oder höher. |
Installieren und Verwalten des Exchange Online PowerShell-Moduls
Sie laden das Modul aus dem PowerShell-Katalog unter https://www.powershellgallery.com/packages/ExchangeOnlineManagement/herunter.
In den Verfahren in diesem Abschnitt wird erläutert, wie Das Modul installiert, aktualisiert und deinstalliert wird.
Unterstützte Betriebssysteme für das Exchange Online PowerShell-Modul
Die neuesten Versionen des Moduls werden offiziell in PowerShell 7 unter Windows, Linux und Apple macOS unterstützt.
Insbesondere Version 2.0.4 oder höher wird in PowerShell 7.0.3 oder höher unterstützt.
Weitere Informationen zu PowerShell 7 finden Sie unter Ankündigung von PowerShell 7.0.
Apple macOS
Das Modul wird in den folgenden Versionen von macOS unterstützt:
- macOS 11 Big Sur oder höher
- macOS 10.15 Catalina
- macOS 10.14 Mojave
Anweisungen zur Installation von PowerShell 7 auf macOS finden Sie unter Installieren von PowerShell auf macOS.
Hinweis
Wie im Installationsartikel beschrieben, müssen Sie OpenSSL installieren, da dies für WSMan erforderlich ist.
Führen Sie nach der Installation von PowerShell 7 und OpenSSL die folgenden Schritte aus:
PowerShell als Superuser ausführen:
sudo pwsh
Führen Sie in der PowerShell-Superusersitzung die folgenden Befehle aus:
Install-Module -Name PSWSMan Install-WSMan
Wenn Sie dazu aufgefordert werden, akzeptieren Sie PSGallery als Quelle für die Cmdlets.
Jetzt können Sie die regulären PowerShell-Voraussetzungen erfüllen und das Exchange Online PowerShell-Modul installieren.
Linux
Das Modul wird offiziell in den folgenden Linux-Distributionen unterstützt:
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
Wenn Sie Probleme bei der Verwendung des Moduls in anderen Linux-Distributionen haben, melden Sie Probleme.
Anweisungen zur Installation von PowerShell 7 auf Linux finden Sie unter Installieren von PowerShell auf Linux.
Führen Sie nach der Installation von PowerShell 7 die folgenden Schritte aus:
PowerShell als Superuser ausführen:
sudo pwsh
Führen Sie in der PowerShell-Superusersitzung die folgenden Befehle aus:
Install-Module -Name PSWSMan Install-WSMan
Wenn Sie dazu aufgefordert werden, akzeptieren Sie PSGallery als Quelle für die Cmdlets.
Jetzt können Sie die regulären PowerShell-Voraussetzungen erfüllen und das Exchange Online PowerShell-Modul installieren.
Hinweis
Wenn Sie über ein Netzwerk hinter einem Proxyserver eine Verbindung mit Exchange Online PowerShell herstellen, funktioniert das EXO V2-Modul (Version 2.0.5 oder früher) unter Linux nicht. Sie müssen das EXO V3-Modul (v3.0.0 oder höher) unter Linux verwenden, um eine Verbindung aus einem Netzwerk herzustellen, das sich hinter einem Proxyserver befindet.
Windows
Alle Versionen des Moduls werden in Windows PowerShell 5.1 unterstützt.
PowerShell 7 unter Windows erfordert Version 2.0.4 oder höher.
Version 2.0.5 oder höher des Moduls erfordert das Microsoft .NET Framework 4.7.1 oder höher, um eine Verbindung herzustellen. Andernfalls erhalten Sie eine System.Runtime.InteropServices.OSPlatform
Fehlermeldung. Diese Anforderung sollte in aktuellen Versionen von Windows kein Problem sein. Weitere Informationen zu Windows-Versionen, die die .NET Framework 4.7.1 unterstützen, finden Sie in diesem Artikel.
Windows PowerShell Anforderungen und Modulunterstützung in älteren Versionen von Windows werden in der folgenden Liste beschrieben:
Windows 8.1¹
Windows Server 2012 oder Windows Server 2012 R2¹
Windows 7 Service Pack 1 (SP1)² ¹ ⁴
Windows Server 2008 R2 SP1² ¹ ⁴
¹ PowerShell 7 für diese Version von Windows erfordert die Windows 10 Universelle C-Runtime (CRT).
² Diese Windows-Version hat das Ende des Supports erreicht und wird jetzt nur auf virtuellen Azure-Computern unterstützt.
¹ Diese Version von Windows unterstützt nur v2.0.3 oder frühere Versionen des Moduls.
⁴ Windows PowerShell 5.1 für diese Version von Windows erfordert die .NET Framework 4.5 oder höher und die Windows Management Framework 5.1. Weitere Informationen finden Sie unter Windows Management Framework 5.1.
Voraussetzungen für das Exchange Online PowerShell-Modul
Legen Sie die PowerShell-Ausführungsrichtlinie auf RemoteSigned fest.
Hinweis
Die Einstellungen in diesem Abschnitt gelten für alle Versionen von PowerShell auf allen Betriebssystemen.
PowerShell muss zum Ausführen von Skripts konfiguriert werden. Standardmäßig ist dies nicht der Fall. Beim Versuch, eine Verbindung herzustellen, wird der folgende Fehler 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.
Um festzulegen, dass alle PowerShell-Skripts, die Sie aus dem Internet herunterladen, von einem vertrauenswürdigen Herausgeber signiert sein müssen, müssen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten ausführen (ein PowerShell-Fenster, das Sie durch Auswahl von Als Administrator ausführen geöffnet haben):
Set-ExecutionPolicy RemoteSigned
Mehr zu Ausführungsrichtlinien finden Sie unter Ausführungsrichtlinien.
Aktivieren der Standardauthentifizierung in WinRM
Hinweis
Wie weiter oben in diesem Artikel beschrieben, erfordern REST-basierte Verbindungen keine Standardauthentifizierung in WinRM.
Andernfalls gelten die Einstellungen in diesem Abschnitt für alle Versionen von PowerShell auf allen Betriebssystemen.
Für PowerShell-Remoteverbindungen muss WinRM die Standardauthentifizierung zulassen. Die Kombination aus Benutzername und Kennwort wird nicht gesendet. Der Standardauthentifizierungsheader ist erforderlich, um das OAuth-Token der Sitzung zu senden, da die clientseitige Implementierung von WinRM OAuth nicht unterstützt.
Um zu überprüfen, ob die Standardauthentifizierung für WinRM aktiviert ist, führen Sie den folgenden Befehl in der Eingabeaufforderung oder Windows PowerShell aus:
Hinweis
Die folgenden Befehle erfordern, dass WinRM aktiviert ist. Führen Sie den folgenden Befehl aus, um WinRM zu aktivieren: winrm quickconfig
.
winrm get winrm/config/client/auth
Wenn der Wert Basic = true
nicht angezeigt wird, müssen Sie einen der folgenden Befehle ausführen, um die Standardauthentifizierung für WinRM zu aktivieren:
In der Eingabeaufforderung:
winrm set winrm/config/client/auth @{Basic="true"}
In Windows PowerShell:
winrm set winrm/config/client/auth '@{Basic="true"}'
In Windows PowerShell zum Ändern der Registrierung:
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Client' -Name 'AllowBasic' -Type DWord -Value '1'
Wenn die Standardauthentifizierung für WinRM deaktiviert ist, wird beim Versuch, eine Verbindung herzustellen, einer der folgenden 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.
Erstellen der PowerShell-Sitzung ist mit OAuth fehlgeschlagen.
PowerShellGet für REST-basierte Verbindungen in Windows
REST-basierte Verbindungen in Windows erfordern das PowerShellGet-Modul und abhängig das PackageManagement-Modul. Diese Module sind mehr für PowerShell 5.1 als für PowerShell 7 zu berücksichtigen, aber alle Versionen von PowerShell profitieren davon, dass die neuesten Versionen der Module installiert sind. Installations- und Updateanweisungen finden Sie unter Installieren von PowerShellGet unter Windows.
Hinweis
Betaversionen des PackageManagement- oder PowerShellGet-Moduls können Verbindungsprobleme verursachen. Wenn Verbindungsprobleme auftreten, vergewissern Sie sich, dass keine Betaversionen der Module installiert sind, indem Sie den folgenden Befehl ausführen: Get-InstalledModule PackageManagement -AllVersions; Get-InstalledModule PowerShellGet -AllVersions
.
Wenn PowerShellGet nicht installiert ist, wenn Sie versuchen, eine REST-basierte Verbindung zu erstellen, erhalten Sie beim Versuch, eine Verbindung herzustellen, die folgende Fehlermeldung:
Cmdlet Update-Manifest nicht gefunden
Installieren des Exchange Online PowerShell-Moduls
Führen Sie die folgenden Schritte aus, um das Modul zum ersten Mal zu installieren:
Installieren oder aktualisieren Sie das PowerShellGet-Modul wie unter Installieren von PowerShellGet beschrieben.
Schließen Sie das Windows PowerShell-Fenster und öffnen Sie es erneut.
Jetzt können Sie das Cmdlet Install-Module verwenden, um das Modul aus dem PowerShell-Katalog zu installieren. In der Regel benötigen Sie die neueste öffentliche Version des Moduls, aber Sie können auch eine Vorschauversion installieren, falls verfügbar.
Um die neueste öffentliche Version des Moduls zu installieren, führen Sie einen der folgenden Befehle aus:
In einem PowerShell-Fenster mit erhöhten Rechten (alle Benutzer):
Install-Module -Name ExchangeOnlineManagement
Nur für das aktuelle Benutzerkonto:
Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser
Führen Sie den folgenden Befehl aus, um die verfügbaren Vorschauversionen des Moduls anzuzeigen:
Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
Führen Sie einen der folgenden Befehle aus, um die neueste verfügbare Vorschauversion des Moduls zu installieren:
In einem PowerShell-Fenster mit erhöhten Rechten (alle Benutzer):
Install-Module -Name ExchangeOnlineManagement -AllowPrerelease
Nur für das aktuelle Benutzerkonto:
Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser -AllowPrerelease
Um eine bestimmte Vorschauversion des Moduls zu installieren, ersetzen Sie <PreviewVersion> durch den erforderlichen Wert, und führen Sie einen der folgenden Befehle aus:
In einem PowerShell-Fenster mit erhöhten Rechten (alle Benutzer):
Install-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease
Nur für das aktuelle Benutzerkonto:
Install-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease -Scope CurrentUser
Wenn Sie fertig sind, geben Sie Y ein, um den Lizenzvertrag anzunehmen.
Ausführliche Informationen zu Syntax und Parametern finden Sie unter Install-Module.
Aktualisieren des Exchange Online PowerShell-Moduls
Wenn das Modul bereits auf Ihrem Computer installiert ist, können Sie die Verfahren in diesem Abschnitt verwenden, um das Modul zu aktualisieren.
Führen Sie den folgenden Befehl aus, um die Version des moduls anzuzeigen, das derzeit installiert ist und wo es installiert ist:
Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation
Wenn das Modul unter C:\Programme\WindowsPowerShell\Modules installiert ist, wird es für alle Benutzer installiert. Wenn das Modul im Ordner Dokumente installiert ist, wird es nur für das aktuelle Benutzerkonto installiert.
Sie können das Cmdlet Update-Module verwenden, um das Modul aus dem PowerShell-Katalog zu aktualisieren. In der Regel benötigen Sie die neueste öffentliche Version des Moduls, aber Sie können auch ein Upgrade auf eine Vorschauversion durchführen, falls diese verfügbar ist.
Um ein Upgrade auf die neueste öffentliche Version des Moduls durchzuführen, führen Sie einen der folgenden Befehle aus, je nachdem, wie Sie das Modul ursprünglich installiert haben (alle Benutzer und nur für das aktuelle Benutzerkonto):
In einem PowerShell-Fenster mit erhöhten Rechten (alle Benutzer):
Update-Module -Name ExchangeOnlineManagement
Nur für das aktuelle Benutzerkonto:
Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser
Um ein Upgrade auf eine Vorschauversion des Moduls durchzuführen, können Sie ein Upgrade auf die neueste verfügbare Vorschauversion durchführen oder den RequiredVersion-Parameter verwenden, um ein Upgrade auf eine bestimmte Vorschauversion durchzuführen.
Führen Sie den folgenden Befehl aus, um die verfügbaren Vorschauversionen des Moduls anzuzeigen:
Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
Führen Sie einen der folgenden Befehle aus, um ein Upgrade auf die neueste verfügbare Vorschauversion des Moduls durchzuführen:
In einem PowerShell-Fenster mit erhöhten Rechten (alle Benutzer):
Update-Module -Name ExchangeOnlineManagement -AllowPrerelease
Nur für das aktuelle Benutzerkonto:
Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser -AllowPrerelease
Um auf eine bestimmte Vorschauversion des Moduls zu aktualisieren, ersetzen Sie <PreviewVersion> durch den erforderlichen Wert, und führen Sie einen der folgenden Befehle aus:
In einem PowerShell-Fenster mit erhöhten Rechten (alle Benutzer):
Update-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease
Nur für das aktuelle Benutzerkonto:
Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser -RequiredVersion <PreviewVersion> -AllowPrerelease
Wenn Sie fertig sind, geben Sie Y ein, um den Lizenzvertrag anzunehmen.
Um zu bestätigen, dass das Update erfolgreich war, führen Sie die folgenden Befehle aus, um die Versionsinformationen des installierten Moduls zu überprüfen:
Import-Module ExchangeOnlineManagement; Get-Module ExchangeOnlineManagement
Ausführliche Informationen zu Syntax und Parametern finden Sie unter Update-Module.
Problembehandlung bei der Installation des Exchange Online PowerShell-Moduls
Sie erhalten einen der folgenden Fehler:
Das angegebene Modul "ExchangeOnlineManagement" mit PowerShellGetFormatVersion "<version>" wird von der aktuellen Version von PowerShellGet nicht unterstützt. Rufen Sie die neueste Version des PowerShellGet-Moduls zum Installieren dieses Moduls, "ExchangeOnlineManagement", ab.
WARNUNG: Vom URI "https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409" kann nicht in "" heruntergeladen werden.
WARNUNG: Die Liste der verfügbaren Anbieter kann nicht heruntergeladen werden. Überprüfen Sie Ihre Internetverbindung.
Aktualisieren Sie die Installation des PowerShellGet-Moduls auf die neueste Version, wie unter Installieren von PowerShellGet beschrieben. Schließen Sie unbedingt das PowerShell-Fenster, und öffnen Sie es erneut, bevor Sie noch einmal versuchen, das ExchangeOnlineManagement-Modul zu aktualisieren.
Ab April 2020 unterstützt der PowerShell-Katalog nur noch Verbindungen mit TLS 1.2 oder höher. Weitere Informationen finden Sie unter PowerShell-Katalog: TLS-Unterstützung.
Um Ihre aktuellen Einstellungen im Microsoft .NET Framework zu überprüfen, führen Sie den folgenden Befehl in Windows PowerShell aus:
[Net.ServicePointManager]::SecurityProtocol
Wie im Artikel „PowerShell-Katalog: TLS-Unterstützung“ beschrieben, führen Sie zum Installieren der Module „PowerShellGet“ oder „ExchangeOnlineManagement“ den folgenden Befehl in Windows PowerShell aus, um das Sicherheitsprotokoll vorübergehend auf TLS 1.2 zu ändern, bevor Sie das Modul installieren:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Um die starke Kryptografie im Microsoft .NET Framework ab Version 4.x dauerhaft zu aktivieren, führen Sie einen der folgenden Befehle aus, je nach Ihrer Windows-Architektur:
x64:
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Type DWord -Value '1'
x86:
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Type DWord -Value '1'
Weitere Informationen finden Sie unter SchUseStrongCrypto.
Sie erhalten den folgenden Fehler:
Für die angegebenen Suchkriterien und den Modulnamen „ExchangeOnlineManagement“ wurde keine Übereinstimmung gefunden. Versuchen Sie,
Get-PSRepository
auszuführen, um alle verfügbaren registrierten Modulrepositorys anzuzeigen.Das Standard-Repository für PowerShell-Module ist nicht auf PSGallery festgelegt. Führen Sie den folgenden Befehl aus, um diesen Fehler zu beheben:
Register-PSRepository -Default
Deinstallieren des Exchange Online PowerShell-Moduls
Führen Sie den folgenden Befehl aus, um die Version des moduls anzuzeigen, das derzeit installiert ist und wo es installiert ist:
Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation
Wenn das Modul unter C:\Programme\WindowsPowerShell\Modules installiert ist, wurde es für alle Benutzer installiert. Wenn das Modul im Ordner Dokumente installiert ist, wurde es nur für das aktuelle Benutzerkonto installiert.
Führen Sie zum Deinstallieren des Moduls den folgenden Befehl in einer der folgenden Umgebungen aus, je nachdem, wie Sie das Modul ursprünglich installiert haben (alle Benutzer und nur für das aktuelle Benutzerkonto):
In einem PowerShell-Fenster mit erhöhten Rechten (alle Benutzer).
In einem normalen PowerShell-Fenster (nur für das aktuelle Benutzerkonto).
Uninstall-Module -Name ExchangeOnlineManagement
Ausführliche Informationen zu Syntax und Parametern finden Sie unter Uninstall-Module.
Eigenschaften und Eigenschaftensätze im Exchange Online PowerShell-Modul
Herkömmliche Exchange Online-Cmdlets geben alle möglichen Objekteigenschaften in der Ausgabe zurück, darunter viele Eigenschaften, die häufig leer sind oder in vielen Szenarien nicht interessant sind. Dieses Verhalten führt zu einer verminderten Leistung (mehr Serverrechenaufwand und zusätzliche Netzwerklast). Nur selten (wenn überhaupt) benötigen Sie die gesamten Eigenschaften in der Cmdlet-Ausgabe.
Die Get-EXO*- Cmdlets im Modul verfügen über kategorisierte Ausgabeeigenschaften. 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.
Die größten und am häufigsten verwendeten Get-EXO*- Cmdlets verwenden Eigenschaftensätze:
In diesen Cmdlets werden Eigenschaftengruppen durch folgende Parameter gesteuert:
- PropertySets: Dieser Parameter akzeptiert einen oder mehrere verfügbare, durch Kommas getrennte Eigenschaftensatznamen. Die verfügbaren Eigenschaftensätze werden unter Eigenschaftensätze in Exchange Online PowerShell-Modul-Cmdlets beschrieben.
- Properties: Dieser Parameter akzeptiert einen oder mehrere, durch Kommas getrennte Eigenschaftennamen.
Sie können die Parameter PropertySets und Properties zusammen im selben Befehl verwenden.
Außerdem haben wir einen Minimum-Eigenschaftensatz einbezogen, der einen absoluten Mindestsatz von erforderlichen Eigenschaften für die Cmdlet-Ausgabe enthält (z. B. Identitätseigenschaften). Die Eigenschaften in den Minimum-Eigenschaftssätzen werden auch unter Eigenschaftensätze in Exchange Online PowerShell-Modul-Cmdlets beschrieben.
- 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.
Beispielsweise werden im folgenden Beispiel, nachdem Sie eine Verbindung mit Exchange Online PowerShell hergestellt haben, nur die Eigenschaften im Minimum-Eigenschaftensatz für die ersten zehn Postfächer zurückgegeben.
Get-EXOMailbox -ResultSize 10
Im Gegensatz dazu würde die Ausgabe des gleichen Get-Mailbox-Cmdlets mindestens 230 Eigenschaften für jedes der ersten zehn Postfächer zurückgeben.
Hinweis
Auch wenn der Parameter PropertySets den Wert "All" akzeptiert, raten wir dringend davon ab, mit diesem Wert alle Eigenschaften zurückzugeben, da dadurch der Befehl verlangsamt und die Zuverlässigkeit verringert wird. Verwenden Sie immer die PropertySets- und Properties-Parameter, um die Mindestanzahl von Eigenschaften abzurufen, die in Ihrem Szenario benötigt werden.
Weitere Informationen zum Filtern im Modul finden Sie unter Filter im Exchange Online PowerShell-Modul.
Versionshinweise
Sofern nicht anders angegeben, enthält die aktuelle Version des Exchange Online PowerShell-Moduls alle Features früherer Versionen.
Aktuelle Version: Version 3.1.0
- AccessToken-Parameter in Connect-ExchangeOnline verfügbar.
- Fehlerbehebungen in Connect-ExchangeOnline und Get-ConnectionInformation.
- Fehlerbehebung in Connect-IPPSSession für das Herstellen einer Verbindung mit Security & Compliance PowerShell mithilfe von CertificateThumbprint.
Frühere Releases
Version 3.0.0 (Vorschauversionen, bekannt als v2.0.6-PreviewX)
- Features, die bereits im Abschnitt Updates für das EXO V3-Modul) beschrieben wurden:
- Zertifikatbasierte Authentifizierung für Security & Compliance PowerShell (Version 2.0.6-Preview5 oder höher).
- Das Cmdlet Get-ConnectionInformation für REST-basierte Verbindungen (Version 2.0.6-Preview7 oder höher).
- Der SkipLoadingFormatData-Schalter im Cmdlet Connect-ExchangeOnline für REST-basierte Verbindungen (Version 2.0.6-Preview8 oder höher).
- Der Parameter DelegatedOrganization funktioniert im Cmdlet Connect-IPPSSession , solange Sie auch den Parameter AzureADAuthorizationEndpointUri im Befehl verwenden.
- Bestimmte Cmdlets, die verwendet wurden, um in bestimmten Szenarien zur Bestätigung aufzufordern, tun dies nicht mehr. Standardmäßig wird das Cmdlet bis zum Abschluss ausgeführt.
- Das Format des Fehlers, der bei der fehlgeschlagenen Cmdlet-Ausführung zurückgegeben wurde, wurde geringfügig geändert. Die Ausnahme enthält jetzt zusätzliche Daten (z. B. den Ausnahmetyp), und der
FullyQualifiedErrorId
enthält nicht .FailureCategory
Das Format des Fehlers kann noch geändert werden.
Version 2.0.5
Neue Cmdlets Get-OwnerlessGroupPolicy und Set-OwnerlessGroupPolicy, um Microsoft 365-Gruppen ohne Besitzer zu verwalten.
Hinweis
Obwohl die Cmdlets im Modul verfügbar sind, ist das Feature nur für Mitglieder einer privaten Vorschau verfügbar.
Neue Cmdlets Get-VivaInsightsSettings und Set-VivaInsightsSettings zum Steuern des Benutzerzugriffs auf Headspace-Features in Viva Insights.
Version 2.0.4
PowerShell 7 wird offiziell unter Windows, Linux und Apple macOS unterstützt, wie im Abschnitt Voraussetzungen für das Exchange Online PowerShell-Modul in diesem Artikel beschrieben.
Das Modul in PowerShell 7 unterstützt browserbasiertes einmaliges Anmelden (Single Sign-On, SSO) und andere Anmeldemethoden. Weitere Informationen finden Sie unter Exklusive Verbindungsmethoden für PowerShell 7.
Die Cmdlets Get-UserAnalyticsConfig und Set-UserAnalyticsConfig wurden durch die Cmdlets Get-MyAnalyticsConfig und Set-MyAnalyticsConfig ersetzt. Zusätzlich können Sie den Zugriff auf Featureebene konfigurieren. Weitere Informationen finden Sie unter Konfigurieren von MyAnalytics.
Richtlinien- und Sicherheitsdurchsetzung in Echtzeit bei allen benutzerbasierten Authentifizierungen. Die fortlaufende Zugriffsevaluierung (Continuous Access Evaluation, CAE) wurde im Modul aktiviert. Weitere Informationen zu CAE finden Sie hier.
Die Eigenschaften LastUserActionTime und LastInteractionTime sind jetzt in der Ausgabe des Cmdlets Get-EXOMailboxStatistics verfügbar.
Der interaktive Anmeldeprozess verwendet jetzt eine sicherere Methode zum Abrufen von Zugriffstoken unter Verwendung sicherer Antwort-URLs.
Version 2.0.3
- Allgemeine Verfügbarkeit der zertifikatbasierten Authentifizierung (CBA), die die Verwendung von moderner Authentifizierung bei unbeaufsichtigten Skripting- oder Hintergrundautomatisierungsszenarios ermöglicht. Die verfügbaren Zertifikatspeicherorte sind:
- Remote im Parameter „Azure Key Value“ (das Zertifikat). Mit dieser Option wird die Sicherheit verbessert, da das Zertifikat nur zur Laufzeit abgerufen wird.
- Lokal im CurrentUser- oder LocalMachine-Zertifikatspeicher (der CertificateThumbprint-Parameter).
- Lokal in einer exportierten Zertifikatdatei (der CertificateFilePath- und der CertificatePassword-Parameter). Weitere Informationen finden Sie in den Parameterbeschreibungen unter Connect-ExchangeOnline und reine App-Authentifizierung für unbeaufsichtigte Skripts im Exchange Online PowerShell-Modul.
- Stellen Sie in einem einzelnen PowerShell-Fenster gleichzeitig eine Verbindung mit Exchange Online PowerShell- und Security & Compliance-PowerShell her.
- Der neue CommandName-Parameter ermöglicht es Ihnen, die in einer Sitzung importierten Exchange Online PowerShell-Cmdlets anzugeben und einzuschränken. Diese Option verringert den Speicherbedarf für PowerShell-Anwendungen mit hoher Auslastung.
- Get-EXOMailboxFolderPermission unterstützt jetzt ExternalDirectoryObjectID im Parameter Identity.
- Die optimierte Latenz des ersten V2-Cmdlet-Aufrufs. Laborergebnisse zeigen, dass die erste Aufrufwartezeit von 8 Sekunden auf ungefähr 1 Sekunde reduziert wurde. Die tatsächlichen Ergebnisse sind vom Ergebnis der Cmdlet-Größe und der Mandantenumgebung abhängig.
Version 1.0.1
- 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 filter im Exchange Online PowerShell-Modul auf Attribute, die in Filtern nicht unterstützt werden.
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 denFolderId
-Wert mithilfe von Get-MailboxFolder abrufen. Zum 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 PowerShell-Cmdlets zur Sicherheitskonformität & mithilfe des Cmdlets Connect-IPPSSession hinzugefügt.
- Das Ankündigungsbanner kann mit dem Schalter ShowBanner (
-ShowBanner:$false
) ausgeblendet werden. - 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 mit Fehlercode 400 auf eine nicht vorhandene Seite 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.