You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ADO发布管道AzurePowerShell任务server_2上Connect-AzAccount失败排查

问题根因分析与解决方法:Connect-AzAccount在Windows Server 2012 R2触发EndOfStreamException

根因

Windows Server 2012 R2默认仅启用TLS 1.0和TLS 1.1,而Azure服务当前要求客户端使用TLS 1.2及以上版本进行通信。当Connect-AzAccount尝试与Azure身份验证服务建立连接时,旧版TLS无法完成握手流程,导致网络流提前终止,最终抛出System.IO.EndOfStreamException。尽管两台服务器的PowerShell、Az模块版本一致,但操作系统的TLS基础配置差异是核心问题。

解决方法

临时修复(单次会话生效)

在执行Connect-AzAccount前,先强制PowerShell会话启用TLS 1.2:

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

可将这段代码添加到AzurePowerShell任务的初始化脚本开头,或在本地PowerShell控制台中先行执行。

永久修复(系统级生效)

通过修改注册表强制系统默认使用TLS 1.2,无需每次会话手动配置:

  1. 打开注册表编辑器(运行regedit.exe)
  2. 定位到路径:HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
  3. 创建或修改DWORD类型值SchUseStrongCrypto,设置数值数据为1
  4. 若服务器运行32位程序,额外定位到路径:HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319
  5. 同样创建或修改DWORD类型值SchUseStrongCrypto,设置数值数据为1
  6. 重启服务器使配置生效

验证修复效果

执行以下PowerShell命令确认TLS配置是否生效:

[Net.ServicePointManager]::SecurityProtocol

输出结果需包含Tls12,表示配置成功。

内容的提问来源于stack exchange,提问作者Herbert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 08:25:31