У меня есть сервер 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 или выше