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.

PowerCLI offline Installation

In vielen Firmenumgebungen sind strikte Sicherheitsrichtlinien in Kraft. Damit ist es nur eingeschränkt, oder überhaupt nicht möglich auf Internet Resourcen zurückzugreifen. Das bemerkt man beispielsweise, wenn man versucht PowerCLI auf einem Management System zu installieren. Zwar bietet die Verfügbarkeit der PowerCLI Module in der Powershell Gallery eine einfache Methode der Installation, oder des Updates, jedoch nur wenn der Zugriff zu dieser externen Ressource von Powershell erlaubt ist. Die Verwendung der Powershell Gallery erfordert den NuGet Packet Management Provider. Auch dieser muss online bezogen werden.

 Install-Module -Name VMware.PowerCLI -Scope CurrentUser 

Ist die Internetverbindung eingeschränkt, oder blockiert, so scheitert obiger Befehl. Doch man kann die Module auch offline übertragen. Dazu benötigt man einen PC mit freiem Internetzugang. Hier verwendet man nun einen anderen Befehl, der die Module nicht installiert, sondern nur in einen definierten Pfad herunter lädt.

 Save-Module -Name VMware.PowerCLI -Path C:\temp\PSModules

Den gesamten Inhalt des Ordners PSModules kopiert man auf ein Speichermedium der Wahl (z.B. USB Flashmedium) und überträgt die Dateien zum gewünschten Offlinesystem, auf dem PowerCLI benötigt wird.

Wenn man auf dem Zielsystem über Adminrechte verfügt, können die Module in folgenden Pfad kopiert werden.

 C:\Program Files\WindowsPowerShell\Modules 

Jetzt sind die PowerCLI Module auch auf dem Offlinesystem verfügbar. Für ein Versionsupdate muss die Prozedur wiederholt werden. Es ist ratsam, die VMware Module zuvor zu entfernen, bevor man die aktuellen überträgt.

Get-Module VMware.* -ListAvailable | Uninstall-Module -Force

Weitere Anpassungen

Customer Experience Improvement Program (CEIP)

Das VMware Customer Experience Improvement Program sammelt Daten über die Verwendung von VMware Produkten. Dem kann man entweder zustimmen (true), oder es ablehnen (false). Für Offlinesysteme ist nur die Ablehnung (false) sinnvoll. Der unten dargestellte Befehl unterdrückt zukünftige Nachfragen innerhalb der PowerCLI.

Set-PowerCLIConfiguration -Scope AllUsers -ParticipateInCeip $false -confirm:$false

Ungültige SSL Zertifikate ignorieren

Bei Verwendung selbstsignierter Zertifikate im vCenter verweigert PowerCLI die Verbindung. Dieses Verhalten kann unterdrückt werden mit dem Befehl:

Set-PowerCLIConfiguration -Scope AllUsers -InvalidCertificateAction Ignore -confirm:$false

vCenter und Active Directory Betriebsmodus

Wer ein vCenter mit Active-Directory Integration betreibt, sollte den Active Directory Functional Level (Betriebsmodus) im Blick haben. Es ist sehr wichtig, hier eine enge Abstimmung mit dem Domain-Administratoren Team zu haben. Nicht alle vCenter Versionen harmonieren mit allen ADS-Betriebsmodi. Besonders der Betriebsmodus ‘Server 2016’ ist hier heikel, da er aktuell nur von vCenter 6.7 mit Update 1 unterstützt wird.

Was ist der Domänen Betriebsmodus?

Active Directoy Betriebsmodi bestimmen die Fähigkeiten einer Domäne, oder eines Forests. Je höher der Level, desto mehr Funktionen sind verfügbar. Der Betriebsmodus bestimmt ebenso darüber, welche Betriebsysteme Domänencontroller einer Domäne mindestens haben müssen. Eine Domäne im Betriebsmodus ‘Windows Server 2012’ impliziert, dass keine Domänencontroller mit älteren Betriebsystemen vorhanden sein können (wie z.B. Server 2008 R2).

Betriebsmodi haben keinen Einfluss darauf, welche Workstations oder Memberserver einer Domäne beitreten können.

Es ist sinnvoll, den Betriebsmodus auf den höchsten Level einzustellen, den alle Domänencontroller einer Domäne oder eines Forests unterstützen. Auf diese Weise können möglichst viele ADS Funktionen genutzt werden.

„vCenter und Active Directory Betriebsmodus“ weiterlesen