PowerShell: Invoke-RestMethod : The underlying connection was closed: An unexpected error occurred on a send.

Przy próbie użycia polecenia Invoke-RestMethod otrzymujemy komunikat:

Invoke-RestMethod : The underlying connection was closed: An unexpected error occurred on a send.

Problem polega na tym, że starsze wersje .NET nie obsługują nowszych wersji TLS, takich jak 1.2 i 1.3.

Sprawdzonym rozwiązaniem jest wymuszenie użycia TLS w wersji 1.2, w tym samym oknie wydajmy polecenie:

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

Następnie wywołajmy polecenie Invoke-RestMethod jeszcze raz:

Invoke-RestMethod firsttorun.sprawdzone.it > first.ps1

Działa! Możemy już pobrany skrypt uruchomić: