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

Jenkins Windows代理通过PowerShell启动RDP会话问题求助

在Jenkins Windows代理上启动RDP会话的解决方案

问题根源

Jenkins Windows代理默认以本地系统账户运行,该账户没有交互式桌面会话权限,导致mstsc.exe这类依赖桌面环境的程序无法正常启动——这就是手动双击RDP文件正常,但Jenkins脚本执行失败的核心原因。

修复步骤

1. 切换Jenkins代理的运行账户

  • 打开Windows服务管理器,找到你的Jenkins代理服务(通常命名为Jenkins Agent)
  • 右键选择「属性」,切换到「登录」选项卡
  • 选择「此账户」,输入具备本地交互式登录权限的本地管理员账户或域账户,设置密码后重启服务

2. 调整Jenkins流水线脚本

移除Start-Job(后台作业的上下文和当前会话隔离,无桌面访问权限),直接调用mstsc.exe:

node('JenkinsWindows') {
    writeFile file: "session.txt", text: "${env.FILE}"
    powershell(". '.\\RDP.ps1'")
    // 直接在当前代理会话中启动RDP连接
    powershell(script: """
        mstsc.exe "${pwd}\\rdp.rdp"
    """)
}

3. 确保代理机器的桌面会话可用

  • 保证Windows代理机器当前有用户处于登录状态(本地登录或已建立RDP会话且未断开)
  • 若为无人值守场景,可配置系统自动登录,确保启动后有用户进入桌面环境

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 00:15:36