如何在Powershell中设置TLS 1.1?

时间:2019-04-29 23:03:10

标签: powershell

我需要能够在脚本运行时启用tls 1.1,并在脚本完成后恢复为正常状态。我将如何做到这一点?

谷歌搜索并没有产生任何结果。

1 个答案:

答案 0 :(得分:3)

try{
    $InitialSecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol
    [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls11

    # Your code here
}
finally {
    [System.Net.ServicePointManager]::SecurityProtocol = $InitialSecurityProtocol
{

您不需要 try / finally块,但这将有助于确保在脚本完成后恢复TLS设置。 [System.Net.ServicePointManager]::SecurityProtocol设置也将始终在新的PowerShell会话中重置,因此,除非您要重新使用所在的会话,否则您不必担心更改值。

如果要使用TLS 1.1或1.2,则可以指定:

[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls11 -bor [System.Net.SecurityProtocolType]::Tls12

请注意,如果您使用的是PowerShell的较旧版本(没有安装.Net 4.5的任何版本,则为IIRC),则上述命令将不起作用。这是因为直到.Net 4.5将TLS 1.1和1.2添加到.Net框架中为止。

此外,这只会影响.Net调用或大多数PowerShell模块命令。如果您使用的是外部应用程序或潜在的某些第三方模块,则可能需要其他配置。