Azure VM中VS Code运行PowerShell函数App调用远程VM遇WinRM解析错误求助
解决WinRM服务器名称无法解析的遗漏步骤
针对你遇到的WinRM名称解析失败问题,除了已尝试的操作,还可以检查以下几个关键环节:
验证目标VM的名称解析能力
在发起请求的Azure VM上执行以下命令,确认目标VM名称能否正常解析到IP:nslookup [VMName] Resolve-DnsName [VMName]如果解析失败:
- 暂时改用目标VM的私有IP替代名称进行测试,排除名称解析问题
- 确认两台VM处于同一虚拟网络(VNet),或已配置VNet对等互联
- 检查目标VM的DNS服务器设置,确保发起VM的DNS服务器能解析目标VM名称;跨VNet场景需配置DNS转发或Azure私有DNS区域
检查目标VM的WinRM监听配置
在目标VM上运行命令,确认WinRM监听的IP范围是否包含对外访问的地址:winrm enumerate winrm/config/listener若仅监听localhost,重新配置监听规则(HTTPS示例,需替换证书指纹):
winrm create winrm/config/listener?Address=*+Transport=HTTPS @{Hostname="[VMName]";CertificateThumbprint="你的证书指纹"}测试阶段可临时启用HTTP监听:
winrm create winrm/config/listener?Address=*+Transport=HTTP确认发起VM的NSG出站规则
不要仅关注目标VM的入站规则,需检查发起请求的VM所在网络安全组(NSG)是否允许出站访问WinRM端口(默认HTTP为5985,HTTPS为5986),避免出站流量被拦截。调整WinRM客户端的可信主机与端点配置
在发起VM上检查可信主机列表,确认目标VM的名称/IP已正确添加:Get-Item WSMan:\localhost\Client\TrustedHosts若未添加或仅添加了无法解析的名称,补充IP或更新列表:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "[目标VMIP或名称]" -Concatenate排除代理对WinRM的影响
你配置了代理10.0.0.6:8080,需确认WinRM访问目标VM时是否绕过代理(同一VNet内无需走代理):
查看当前代理配置:netsh winhttp show proxy添加目标VM到代理例外列表:
netsh winhttp set proxy proxy-server="10.0.0.6:8080" bypass-list="[VMName],[目标VMIP]"验证底层网络连通性
在发起VM上尝试ping目标VM的私有IP(需确保NSG允许ICMP流量),确认两台VM之间的基础网络连接正常。若ping不通,检查子网路由表是否存在阻止流量的规则,或VNet peering配置是否生效。
内容的提问来源于stack exchange,提问作者SANDEEP KUMAR
相关产品推荐
相关产品推荐

