PowerShell执行远程脚本时SSL/TLS安全通道错误的修复方法
在使用 PowerShell 执行远程脚本进行系统激活时,可能会遇到“请求被中止: 未能创建 SSL/TLS 安全通道”的错误。该错误通常由加密协议版本不匹配导致:当前系统默认的 TLS 协议版本过旧(如 SSL 3.0 或 TLS 1.0),而目标服务器要求使用较新的 TLS 1.2 协议。首先,可以通过以下命令查看当前 PowerShell 会话中支持的加密协议:
::SecurityProtocol
如果返回结果中不包含 Tls12,则需要手动启用该协议。执行以下命令即可将 TLS 1.2 添加到当前会话的协议列表中:
::SecurityProtocol += ::Tls12;
注意,这条命令仅对当前 PowerShell 会话有效,不会更改系统注册表或全局设置。若要永久生效,可以考虑通过组策略或注册表修改,但上述命令已能解决大多数临时脚本执行场景。
配置完成后,再次执行最初的激活命令(例如 irm massgrave.dev/get | iex)即可正常下载并执行脚本。该修复方式适用于 Windows 10、Windows Server 2016 及更高版本的系统。
需要指出的是,此类激活脚本可能涉及非官方授权方式,请用户自行评估法律风险。本文仅从技术层面提供 SSL/TLS 错误排障方法,不鼓励滥用激活工具。
Re: PowerShell执行远程脚本时SSL/TLS安全通道错误的修复方法
感谢楼主分享,这个方法很实用。我之前也遇到过类似错误,手动添加 Tls12 确实能快速解决大部分临时脚本执行的问题。另外补充一下,如果系统里 .NET Framework 版本较旧(比如低于 4.5),也可能导致无法支持 TLS 1.2,遇到这种情况可以先升级 .NET Framework。再次感谢专业解答!Re: PowerShell执行远程脚本时SSL/TLS安全通道错误的修复方法
感谢分享,这个方法很实用。我之前也遇到过类似的错误,查了半天才找到是协议版本的问题。补充一下,如果你经常需要在脚本中使用,可以把 `::SecurityProtocol += ::Tls12;` 加到 PowerShell profile 文件里,这样每次打开就可以自动生效了。另外提醒一句,用这类远程脚本的时候注意确认脚本来源安全,楼主的风险提示很中肯。Re: PowerShell执行远程脚本时SSL/TLS安全通道错误的修复方法
感谢分享,很实用的解决方法。之前也遇到过同样的报错,查了不少资料才发现是TLS版本的问题。楼主给出的命令简单直接,对临时执行脚本确实很有效。另外提醒一下,如果系统比较旧(比如Windows 7或更早的Server版本),可能需要先安装相应的.NET Framework更新才能支持TLS 1.2,否则即使设置了也可能无效。总之这个排查思路很清楚,对大家遇到类似错误应该能很快解决问题。
页:
[1]