使用 Python VirtualBox API 远程启动虚拟机

Launch a virtual machine remotely with Python VirtualBox API

我是 VirtualBox API 的新手,我正在尝试通过 VBoxWebSrv.exe 远程启动虚拟机,这是 运行 本地(用于测试)。 到目前为止我已经这样做了:

from vboxapi import *
params = {'url' : 'http://localhost:18083',
          'user' : 'user',
          'password' : 'password'
          }
webmgr = VirtualBoxManager('WEBSERVICE', params)
vbox = webmgr.getVirtualBox()
machines = vbox.getMachines()

for mach in machines:
    session = webmgr.getSessionObject(vbox)
    progress = mach.launchVMProcess(session, "gui", "")

但是当涉及到 launchVMProcess 方法时它崩溃了。我收到此错误:

Traceback (most recent call last):
  File "C:\Users\user\git\VirtualBox-Manager\VirtualBox_Manager\src\test.py", line 45, in <module>
    progress = mach.launchVMProcess(session, "", "")
  File "C:\Program Files\Oracle\VirtualBox\sdk\bindings\webservice\python\lib\VirtualBox_wrappers.py", line 1801, in __getattr__
    return IUnknown.__getattr__(self, name)
  File "C:\Program Files\Oracle\VirtualBox\sdk\bindings\webservice\python\lib\VirtualBox_wrappers.py", line 388, in __getattr__
    raise AttributeError
AttributeError

奇怪的是,当我使用 COM(=没有 VBoxServer.exe)时,它工作得很好。似乎该方法未针对 webservice 实现或缺少对该方法的引用或我不知道。

我使用最新的 SDK (5.0.14) 和 VirtualBox 5.0.14,主机是 Windows 8.1 64 位。 有什么办法可以解决吗?

非常感谢你的任何想法,我真的被困在这里了。

果然是SDK 5.0.14的webservice有问题,无法正常使用。此问题已在今天发布的 SDK 5.0.16 中修复。