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

Ansible执行win_ping无法连通Azure Windows 2019虚拟机报错如何解决?

报错根因

这个错误的核心触发原因是WinRM调用PowerShell时无法正常初始化.NET公共语言运行时(CLR),具体诱因通常包含以下几种:

  • .NET Framework运行时文件损坏:Windows 2019系统自带的.NET 4.x组件如果存在系统文件缺失、更新不完全、损坏的情况,就会返回HRESULT 80004005错误,导致CLR启动失败,WinRM管道直接被关闭。
  • WinRM配置与Azure云环境默认安全策略冲突:Azure Windows 2019默认开启了UAC远程限制、Windows Defender进程防护规则,如果运行配置脚本时没有适配云环境参数,会导致WinRM没有权限启动CLR进程。
  • WinRM超时/配额设置不合理:默认的WinRM执行配额不足,无法承载Ansible的执行请求,会触发服务端500错误主动关闭连接。

解决方案

按照以下步骤依次操作即可解决:

1. 修复服务器端系统组件

远程登录Azure Windows 2019服务器,以管理员身份运行命令提示符依次执行以下命令:

  • 扫描修复系统文件:sfc /scannow,执行完成后重启服务器
  • 如果sfc修复无效,执行DISM镜像修复:DISM /Online /Cleanup-Image /RestoreHealth,执行完成后再次重启

2. 重新配置WinRM服务

以管理员身份运行PowerShell,依次执行以下命令重置WinRM配置:

# 卸载原有PSRemoting配置
Disable-PSRemoting -Force
# 删除已有的HTTPS监听器
winrm delete winrm/config/listener?Address=*+Transport=HTTPS
# 重新执行Ansible远程配置脚本,添加Azure环境适配参数
.\ConfiguringRemotingForAnsible.ps1 -EnableCredSSP -DisableBasicAuth $false -SkipNetworkProfileCheck
# 验证WinRM服务状态
Get-Service WinRM

执行完成后确认WinRM服务处于正在运行状态,且5986端口已在Azure安全组入站规则中放行。

3. 优化Ansible inventory配置

修改你的hosts文件,在[win:vars]段新增超时配置,可替换原有配置为以下内容:

[win]
x.x.x.x

[win:vars]
ansible_password=*************
ansible_connection=winrm 
ansible_winrm_transport=ntlm
ansible_shell_type=powershell 
ansible_user=*****
ansible_port=5986
ansible_winrm_server_cert_validation=ignore
# 新增超时配置避免连接被主动断开
ansible_winrm_operation_timeout_sec = 60
ansible_winrm_read_timeout_sec = 90

配置修改完成后重新执行ansible -i hosts win -m win_ping测试连通性即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:57:03