Назад | Перейти на главную страницу

Командлет PowerShell Application Insights не может использовать TLS 1.2

У меня есть сервер Windows Server 2012 R2, на котором отключены все протоколы, кроме TLS 1.2. Когда я пытаюсь использовать командлеты PowerShell для Application Insights, он пытается получить пакеты nuget и терпит неудачу.
Я создал сценарий, который явно устанавливает протокол перед запуском команды, но кажется, что командлет был написан для .NET 4.5 или ниже и использует схему выбора протокола по умолчанию, которая ограничивает его до TLS 1.0.

Import-Module 'C:\Program Files\Microsoft Application Insights\Status Monitor\PowerShell\Microsoft.Diagnostics.Agent.StatusMonitor.PowerShell.dll'

#fails on server that requires TLS 1.2
Invoke-WebRequest "https://packages.nuget.org/api/v2"

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

#works on server that requires TLS 1.2
Invoke-WebRequest "https://packages.nuget.org/api/v2"

#fails under both conditions
Get-ApplicationInsightsMonitoringStatus 

Как заставить командлеты PowerShell App Insights работать на сервере с включенным только TLS 1.2?

Вам необходимо включить TLS 1.2 для .NET Framework через реестр.

Включите надежную криптографию в .NET Framework 4.5 или выше