В бесстыдной попытке украсть несколько голосов, SecurityProtocol
это Enum
с [Flags]
атрибутом. Так что вы можете сделать это:
[Net.ServicePointManager]::SecurityProtocol =
[Net.SecurityProtocolType]::Tls12 -bor `
[Net.SecurityProtocolType]::Tls11 -bor `
[Net.SecurityProtocolType]::Tls
Или, поскольку это PowerShell, вы можете позволить ему разобрать строку:
[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"
Тогда вам технически не нужно знать версию TLS.
Я скопировал и вставил это из сценария, который я создал после прочтения этого ответа, потому что я не хотел перебирать все доступные протоколы, чтобы найти тот, который работал. Конечно, вы можете сделать это, если хотите.
Последнее замечание: в моем профиле PowerShell есть исходная (за вычетом правок) заявка, поэтому сейчас я начинаю каждую сессию. Это не совсем надежно, так как есть некоторые сайты, которые просто выходят из строя, но я наверняка вижу это сообщение гораздо реже.