Powershell 4 слишком стар для tls 1.2? - PullRequest
0 голосов
/ 10 марта 2020

У меня есть Windows Server 2012R2 с powershell 4.

A sql задание выдает Invoke-WebRequest https://someserver/file.xml -OutFile c:/tmp/data.xml"

Сбой с ошибкой ssl, даже если я следую Сбой Powershell Invoke-WebRequest с SSL / TLS Secure Channel и с добавлением [Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls" или другими вариантами.

Является ли powershell 4 слишком старым?

Стоит ли пытаться установить Wowershell 6 или 7 from https://github.com/PowerShell/PowerShell/releases?

Будет ли это вызываться sqljob, или должно быть указано где-то / каким-то образом, что он должен запускать v7 вместо v4?

PS : Я знаю, что "Windows Server 2012 R2 вошел в основную поддержку 25 ноября 2013 года, хотя, но его конец основного потока - 9 января 2018 года, а конец расширенного - 10 января 2023 года" , но обновление сейчас это не вариант

[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"

Но все равно получите Invoke-WebRequest : The request was aborted: Could not create SSL/TLS secure channel.

РЕДАКТИРОВАТЬ 2

PS C:\Users\leif> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.14409.1005
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.14409.1005
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

1 Ответ

0 голосов
/ 10 марта 2020

Я верю, что это так. Powershell опирается на каркас. Net под капотом. PS использует версию 4. Net 4.0, которая, по моему мнению, не поддерживает TLS 1.2, добавлена ​​или включена по умолчанию.

См .: https://docs.microsoft.com/en-us/powershell/scripting/install/windows-powershell-system-requirements?view=powershell-7

TLS 1.2 был установлен протокол по умолчанию в. Net 4.6 См .: https://blogs.perficient.com/2016/04/28/tsl-1-2-and-net-support/

Запишите: NET 4.0. TLS 1.2 не поддерживается

Так что вам нужно будет кодировать его, как другие предложили или обновили до WMF 5.1. Перед завершением обновления убедитесь, что оно ничего не сломает. Некоторые продукты MS, такие как SharePoint, могут быть несовместимы с более новой версией.

Кроме того, попробуйте установить свой TLS с помощью:

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

Выше предполагается версия PowerShell с поддержкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...