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

Azure DevOps通过PSSession执行PowerShell报WinRM连接失败错误

Azure DevOps远程PowerShell任务PSSession创建失败故障排查

故障触发场景:使用Azure DevOps「目标机器上的PowerShell」任务,通过PSSession/Invoke-Command远程执行脚本时,连接NewDBServer.XYZ.local:5986报错WinRM无法完成操作。

核心配置遗漏点(按排查优先级排序)

  • 目标服务器网卡网络类别配置为公用网络
    WinRM默认防火墙规则对公用网络仅开放同子网访问权限,若Azure DevOps执行代理与目标数据库服务器不在同一子网,请求会被防火墙直接拦截。
    修复操作:
    1. 登录目标服务器,执行命令查询当前网卡配置:
    Get-NetConnectionProfile
    
    1. 对承载业务通信的网卡,将网络类别修改为域认证网络(域环境)或专用网络(工作组环境),替换命令中<目标网卡InterfaceIndex值>为实际查询到的网卡索引:
    Set-NetConnectionProfile -InterfaceIndex <目标网卡InterfaceIndex值> -NetworkCategory DomainAuthenticated
    
  • WinRM HTTPS 5986端口监听器无效/缺失
    任务默认通过5986端口(WinRM HTTPS协议)建立连接,若目标机未配置有效HTTPS监听器、绑定的SSL证书过期/域名不匹配,会直接导致连接失败。
    修复操作:
    1. 执行命令核查现有监听器配置:
    winrm enumerate winrm/config/listener
    
    1. 若返回结果无Transport为HTTPS、监听端口为5986的条目,提前准备好颁发给NewDBServer.XYZ.local的有效SSL证书(存入本地计算机个人证书存储),执行命令创建监听器:
    $validCert = Get-ChildItem Cert:\LocalMachine\My | Where-Object {$_.Subject -match "NewDBServer.XYZ.local" -and $_.NotAfter -gt (Get-Date)} | Sort-Object NotAfter -Descending | Select-Object -First 1
    winrm create winrm/config/Listener?Address=*+Transport=HTTPS "@{Hostname=`"NewDBServer.XYZ.local`";CertificateThumbprint=`"$($validCert.Thumbprint)`"}"
    
  • 防火墙未放通WinRM HTTPS入站流量
    即使监听器正常运行,若Windows防火墙或网络层安全组未放通源地址为DevOps代理IP、目标端口为5986的入站TCP流量,连接同样会被阻断。
    修复操作:
    1. 启用系统内置的WinRM HTTPS入站防火墙规则:
    Enable-NetFirewallRule -DisplayName "Windows Remote Management (HTTPS-In)"
    
    1. 若有最小权限要求,可修改规则仅允许DevOps代理所在网段访问5986端口。

连通性校验:在DevOps代理所在机器执行以下两步验证,全部通过后重新运行管道即可恢复:

  1. 执行Test-NetConnection NewDBServer.XYZ.local -Port 5986,确认TcpTestSucceeded返回值为True
  2. 执行Enter-PSSession -ComputerName NewDBServer.XYZ.local -UseSSL -Credential <任务配置的远程凭据>,确认可以正常进入远程会话

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 12:45:29