Manchmal kann es nötig sein, die Exchange Online Shell auf einem älteren Betriebssystem zu installieren, beispielsweise wenn eine ältere Exchange Server Version zu Exchange Online oder Microsoft 365 migriert werden soll. Beim Versuch der Installation kann es allerdings zu einem Fehler kommen, bei dem die Fehlermeldung nicht ganz eindeutig ist.
Die folgende Fehlermeldung kann auftreten, wenn versucht wird die Exchange Online Shell auf älteren Betriebssystemen zu installieren:
WARNING: Die Liste der verfügbaren Anbieter kann nicht heruntergeladen werden. Überprüfen Sie Ihre Internetverbindung.
PackageManagement\Install-PackageProvider : Für die angegebenen Suchkriterien für Anbieter „NuGet“ wurde keine
Übereinstimmung gefunden. Der Paketanbieter erfordert das PackageManagement- und Provider-Tag. Überprüfen Sie, ob das
angegebene Paket über die Tags verfügt.
Der Hintergrund ist folgender: Für die Installation der Exchange Online Shell wird der PackageProvider NuGet (PowerShellGet) benötigt. NuGet wird dazu bei Bedarf runtergeladen und installiert. Der Download ist allerdings nur möglich, wenn der Client TLS 1.2 unterstützt. Die TLS 1.2 Unterstützung ist allerdings bei älteren Betriebssystemen nicht in der Standardeinstellung eingeschaltet. Die aktuellen TLS Einstellungen lassen sich mit der PowerShell prüfen:
[Net.ServicePointManager]::SecurityProtocol
In der Ausgabe ist zu erkennen, dass in diesem Fall nur SSL3 und recht alte TLS (TLS 1.0), nicht aber TLS 1.1 und TLS 1.2 unterstützt wird. Um nur noch TLS Verbindungen zu nutzen können die folgenden beiden Befehle benutzt werden (SSL3 sollte generell nicht mehr genutzt werden):
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord
Nach einem Neustart der PowerShell werden jetzt nur noch TLS Verbindungen genutzt:
Jetzt funktioniert auch der Download von NuGet und die Installation der Exchange Online Shell:
Die aktuelle Version der Exchange Online PowerShell Moduls findet sich hier: