Kontakt zur Powershell Gallery nicht möglich

Auf älteren Windows Systemen kann es vorkommen, dass der Kontakt zur Powershell Gallery nicht möglich ist. Beim Versuch wird ein Fehler zurückgegeben.

Unable to resolve package source ‘https://www.powershellgallery.com/api/v2’

Ursache im TLS

Transport Layer Security (TLS) ist ein Verschlüsselungsprotokoll zur sicheren Datenübertragung im Internet. Seit 2021 gelten die TLS Versionen 1.0 und 1.1 als veraltet und werden daher von vielen Anwendungen nicht mehr akzeptiert. Damit sind TLS 1.2 und 1.3 zum neuen Standard geworden. Auch die Powershell Gallery erfordert Seit 2020 mindestens TLS 1.2 und lehnt ältere Protokolle ab. Ältere Powershell Versionen wie beispielsweise Powershell 5.1 unterstützen diese Konfiguration nicht.

Aktuelles Security Protokoll abfragen

[Net.ServicePointManager]::SecurityProtocol

Als Ergebnis liefert Powershell in der Regel den Wert ‘SystemDefault’ zurück. D.h. Powershell verwendet die systemweiten Einstellungen für TLS.

PS > [Net.ServicePointManager]::SecurityProtocol
SystemDefault

Falls im System eine ältere TLS Version als Standard definiert ist, verwendet Powershell diese als Standard.

TLS 1.2 erzwingen

TLS 1.2 lässt sich in Powershell erzwingen mit dem unten gezeigten Kommando. Allerdings muss dieser Befehl in jeder neuen Powershell Session erneut ausgeführt werden.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Zum Test kann der Befehl aus dem ersten Screenshot erneut ausgeführt werden.

PS > Find-Module -Name VMware.PowerCLI

Es wird nun die Version des Moduls zurückgegeben ohne Fehlermeldung.

Version Name Repository Description
------- ---- ---------- -----------
13.3.0…. VMware.PowerCLI PSGallery This Windows PowerShell module contains VMware.PowerCLI

Nachhaltige Lösung

Das Erzwingen der TLS 1.2 Version kann nur ein kurzfristiger Fix sein. Langfristig sollte die Poweshell Version im OS auf aktuellen Stand gebracht werden. Ältere Systeme, die laut Microsoft ihr End-of-Life (EoL) erreicht haben, sollten nicht mehr eingesetzt werden. Das ist leicht gesagt, aber mir begegnen in der Praxis immer wieder Altsysteme, die aus den unterschiedlichsten Gründen nicht ersetzt werden können.

Kontakt zur Powershell Gallery nicht möglich

Auf älteren Windows Systemen kann es vorkommen, dass der Kontakt zur Powershell Gallery nicht möglich ist. Beim Versuch wird ein Fehler zurückgegeben.

Unable to resolve package source ‘https://www.powershellgallery.com/api/v2’

Ursache im TLS

Transport Layer Security (TLS) ist ein Verschlüsselungsprotokoll zur sicheren Datenübertragung im Internet. Seit 2021 gelten die TLS Versionen 1.0 und 1.1 als veraltet und werden daher von vielen Anwendungen nicht mehr akzeptiert. Damit sind TLS 1.2 und 1.3 zum neuen Standard geworden. Auch die Powershell Gallery erfordert Seit 2020 mindestens TLS 1.2 und lehnt ältere Protokolle ab. Ältere Powershell Versionen wie beispielsweise Powershell 5.1 unterstützen diese Konfiguration nicht.

Aktuelles Security Protokoll abfragen

[Net.ServicePointManager]::SecurityProtocol

Als Ergebnis liefert Powershell in der Regel den Wert ‘SystemDefault’ zurück. D.h. Powershell verwendet die systemweiten Einstellungen für TLS.

PS > [Net.ServicePointManager]::SecurityProtocol
SystemDefault

Falls im System eine ältere TLS Version als Standard definiert ist, verwendet Powershell diese als Standard.

TLS 1.2 erzwingen

TLS 1.2 lässt sich in Powershell erzwingen mit dem unten gezeigten Kommando. Allerdings muss dieser Befehl in jeder neuen Powershell Session erneut ausgeführt werden.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Zum Test kann der Befehl aus dem ersten Screenshot erneut ausgeführt werden.

PS > Find-Module -Name VMware.PowerCLI

Es wird nun die Version des Moduls zurückgegeben ohne Fehlermeldung.

Version Name Repository Description
------- ---- ---------- -----------
13.3.0…. VMware.PowerCLI PSGallery This Windows PowerShell module contains VMware.PowerCLI

Nachhaltige Lösung

Das Erzwingen der TLS 1.2 Version kann nur ein kurzfristiger Fix sein. Langfristig sollte die Poweshell Version im OS auf aktuellen Stand gebracht werden. Ältere Systeme, die laut Microsoft ihr End-of-Life (EoL) erreicht haben, sollten nicht mehr eingesetzt werden. Das ist leicht gesagt, aber mir begegnen in der Praxis immer wieder Altsysteme, die aus den unterschiedlichsten Gründen nicht ersetzt werden können.