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

Terraform部署Windows Server2016通过WinRM执行脚本超时如何解决

WinRM 5985端口连接超时排查解决步骤

1. 网络链路排查

  • 检查关联VM的网络安全组(NSG)入站规则:必须放行了执行terraform命令的设备公网IP的TCP 5985端口入站权限,默认Windows镜像的NSG不会主动开放该端口。
  • 本地验证端口连通性:在执行terraform的设备上执行命令Test-NetConnection <VM公网IP> -Port 5985,确认端口可正常连通。
  • 检查本地网络出站限制:部分企业内网会封禁5985这类非常用端口的出站请求,可切换手机热点等公网环境二次验证。

2. 虚拟机内部WinRM配置排查

默认Windows Server 2016镜像没有开启WinRM服务和相关权限,这是该报错的最高发原因

  • 需要通过自定义数据(custom_data)在VM初始化阶段自动完成WinRM配置,在azurerm_windows_virtual_machine资源块中添加如下配置:
custom_data = base64encode(<<-EOF
<powershell>
# 放通WinRM防火墙规则
Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
# 开启PS远程管理
Enable-PSRemoting -Force
# 配置信任主机列表
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" -Force
# 允许非加密传输、开启基础认证,匹配你当前的WinRM连接参数
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
winrm set winrm/config/service/auth '@{Basic="true"}'
# 重启WinRM服务生效
Restart-Service WinRM
</powershell>
EOF
)
  • 调整超时时间:Standard_B1s规格的虚拟机启动速度较慢,可将provisioner中的timeout参数从5m调整为10m,预留足够的初始化时间。
  • 临时验证方案:可通过Azure门户的串行控制台直接登录VM,手动执行上述PowerShell配置命令,确认WinRM开启后再重新执行terraform apply。

3. 连接参数校验

  • 确认WinRM连接参数匹配:你当前使用的是HTTP协议、5985端口、非HTTPS模式,需要和上述WinRM配置保持一致,不要混用HTTPS 5986端口的配置参数。
  • 确认管理员账号密码正确:避免因多次密码错误触发系统安全策略,临时拦截连接请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:54:05