Heute wollten wir auf einem unserer Server das AzureAD Modul der PowerShell installieren. Das geht klassisch mit dem Befehl „Install-Module -Name AzureAD“. Während des Installationsprozesses teilte uns die PowerShell mit, dass NuGet, ein für die Installation erforderliches Paket, nicht vorhanden war.
PowerShellGet erfordert die NuGet-Anbieterversion 2.8.5.201 oder höher für die Interaktion mit NuGet-basierten
Repositorys. Der NuGet-Anbieter muss in "C:\Program Files\PackageManagement\ProviderAssemblies" oder
"C:\Users\xxxx\AppData\Local\PackageManagement\ProviderAssemblies" verfügbar sein. Sie können den NuGet-Anbieter
auch durch Ausführen von 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force' installieren. Möchten
Sie den NuGet-Anbieter jetzt durch PowerShellGet installieren und importieren lassen?
Das ist an sich nicht wirklich ungewöhnlich. Bei dieser Meldung gibt es normalerweise die Möglichkeit, einfach mit „Ja“ zu bestätigen, um NuGet automatisch herunterzuladen und zu installieren. Doch in diesem Fall folgte eine Fehlermeldung statt einer erfolgreichen Installation:
WARNUNG: Es kann kein Download von URI "https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409" nach ""
durchgeführt werden.
WARNUNG: 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.
Hier auch nochmal als Screenshot:
Es stellt sich heraus, dass das Kernproblem in der verwendeten Version des TLS-Protokolls lag. Ältere Versionen der PowerShell nutzen standardmäßig TLS 1.1. Das wäre an sich kein Problem, wenn nicht der Download-Server von Microsoft nur noch die neuere Version, TLS 1.2, akzeptieren würde.
- Wireless Ladegerät: Wirklich kabelloses Solarstrom-Ladegerät mit drahtlosem Ausgang unterstützt…
- 26800mAh Kapazität: Das tragbare Ladegerät in Handy-Größe bietet 8 Aufladungen für das 2000mAh…
Letzte Aktualisierung am 2024-12-09 / Affiliate Links / Bilder von der Amazon Product Advertising API
Für alle, die auf ähnliche Probleme stoßen, gibt es eine einfache Abhilfe. Um die PowerShell zum Verwenden von TLS 1.2 zu bewegen, muss lediglich der folgende Befehl eingegeben werden:
[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12
Nach der Ausführung dieses Befehls sollte die PowerShell nun TLS 1.2 verwenden und somit keine Fehlermeldung mehr beim Download von NuGet oder anderen Modulen wie AzureAD erscheinen. Es ist faszinierend, wie manchmal kleine Details wie die Version eines Sicherheitsprotokolls einen so großen Einfluss auf den gesamten Installationsprozess haben können.