You need to enable JavaScript to run this app. Jenkins调用Oracle VirtualBox报E_ACCESSDENIED权限错误如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins调用Oracle VirtualBox报E_ACCESSDENIED权限错误如何解决?

错误原因

该E_ACCESSDENIED报错的核心原因是:Windows环境下Jenkins服务默认使用内置的Local System账户运行,而你创建的VirtualBox虚拟机配置、访问权限都绑定在你平时登录的普通用户账户下,Local System账户没有权限访问对应用户名下的VirtualBox资源,因此所有VBoxManage调用都会失败。

修复方案
  • 方案1(最推荐):修改Jenkins服务的运行账户

    直接将Jenkins服务的运行身份改为你能正常执行VBox命令的Windows用户即可,操作步骤:

    1. 按下Win+R输入services.msc打开服务管理器
    2. 在服务列表中找到Jenkins服务,右键点击选择「属性」
    3. 切换到「登录」选项卡,勾选「此账户」选项
    4. 输入你平时运行VirtualBox命令的Windows用户名、对应登录密码,点击确认保存
    5. 重启Jenkins服务,重新执行构建任务测试即可
  • 方案2:批处理内指定用户执行命令

    如果你不想修改Jenkins服务的默认运行身份,可以在批处理脚本中用runas命令指定用户执行VBoxManage操作,命令示例:

    runas /user:你的Windows用户名 /savecred "C:\Program Files\Oracle\VirtualBox\VBoxManage startvm \"Ubuntu\" --type headless"
    

    注意:第一次执行该命令时需要手动输入一次对应用户的密码,勾选保存凭证后后续Jenkins调用就不需要重复输入密码。

  • 补充配置

    如果上述操作后仍有报错,可补充配置权限:

    1. 找到VirtualBox安装目录,默认路径为C:\Program Files\Oracle\VirtualBox,右键点击文件夹选择「属性」-「安全」
    2. 给Jenkins运行的账户添加文件夹的「完全控制」权限
    3. 确认你已经安装了对应版本的Oracle VM VirtualBox Extension Pack,headless模式运行需要该扩展包支持
注意事项
  • 不要混用不同用户身份运行VirtualBox/VBoxManage,否则会导致虚拟机配置写入不同用户的家目录,出现配置找不到的问题
  • 修改Jenkins服务运行账户不会丢失原有Jenkins的工作空间、插件、任务配置,无需重新初始化Jenkins

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 04:06:07