PowerShell: NuGet kann nicht installiert werden

Ich musste bei einem Kunden NPS f. MFA über Azure aktivieren. Dazu muss ein Script der «NPS Extension for Azure MFA» ausgeführt werden:

.\AzureMfaNpsExtnConfigSetup.ps1

Dieses Script brach aber in meinem Fall ab:

AUSFÜHRLICH: Der NuGet-Anbieter wird installiert.
AUSFÜHRLICH: Der Anbieter "Bootstrap" wird für die Paketsuche verwendet.
AUSFÜHRLICH: Finding the package 'Bootstrap::FindPackage' 'NuGet','','2.8.5.201','''.
WARNUNG: Es kann kein Download von URI "https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409" nach ""
durchgeführt werden.
AUSFÜHRLICH: Cannot download link 'https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409', retrying for '2' more
times.
AUSFÜHRLICH: Cannot download link 'https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409', retrying for '1' more
times.
AUSFÜHRLICH: Cannot download link 'https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409', retrying for '0' more
times.
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.
In C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:7405 Zeichen:21
 …     $null = PackageManagement\Install-PackageProvider -Name $script:N …
 ~~~~~~~~~~~~~ CategoryInfo          : InvalidArgument: (Microsoft.Power…PackageProvider:InstallPackageProvider) [Install-Pac
 kageProvider], Exception
 FullyQualifiedErrorId : NoMatchFoundForProvider,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackagePro
 vider

Eine kurze Recherche brachte folgendes Problem zutage:

Powershell verwendet verschiedene Protokolle. Welche verwendet werden dürfen, kann konfiguriert werden. Mit dem folgenden Befehl kann die aktuelle Einstellung abgefragt werden:

[Net.ServicePointManager]::SecurityProtocol

Bei mir war der Output folgender:

Ssl3, Tls

Für die Installation, bzw. die Verbindung zum Repository wird aber TLS 1.2 benötigt. Dies kann wie folgt :

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

Der Befehl kann auch wie folgt lauten:

[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::TLS12

Das Ergebnis ist dasselbe.

Diese Einstellung gilt aber nur für die aktuelle Session. Sobald PowerShell neu gestartet wird, gilt wieder die alte Einstellung.

Dies könnte über folgende Registry Keys angepasst werden:

.NET 4.x
Set-ItemProperty -Path ‘HKLM:\SOFTWARE\Microsoft.NetFramework\v4.0.30319’ -Name ‘SchUseStrongCrypto’ -Value ‘1’ -Type DWord
Set-ItemProperty -Path ‘HKLM:\SOFTWARE\Wow6432Node\Microsoft.NetFramework\v4.0.30319’ -Name ‘SchUseStrongCrypto’ -Value ‘1’ -Type DWord

.NET 3.5
Set-ItemProperty -Path ‘HKLM:\SOFTWARE\Microsoft.NetFramework\v2.0.50727’ -Name ‘SchUseStrongCrypto’ -Value ‘1’ -Type DWord
Set-ItemProperty -Path ‘HKLM:\SOFTWARE\Wow6432Node\Microsoft.NetFramework\v2.0.50727’ -Name ‘SchUseStrongCrypto’ -Value ‘1’ -Type DWord

Ich habe dies aber nicht ausgeführt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

This site uses Akismet to reduce spam. Learn how your comment data is processed.