VirtualBox + Powershell?

use*_*818 3 powershell virtualbox comobject

我创建了一个虚拟机.现在我尝试使用Powershell启动它.我已经在互联网上搜索了有关如何做到这一点的任何细节.这是我发现的唯一代码......

#----------------------
$vBox = New-Object -ComObject VirtualBox.VirtualBox
$vBox | Get-Member *

$vBox.Machines

$vBox.CreateMachine()
#----------------------
Run Code Online (Sandbox Code Playgroud)

(来源:http://www.ravichaganti.com/blog/? p = 1275)

实际上,我无法在virtualbox.org上找到有关com对象的任何文档.我对powershell非常擅长,我花了一些时间来探索com对象...

$vBox | gm
Run Code Online (Sandbox Code Playgroud)

我尝试了所有我能想到但却只收到错误的东西.我的问题是如何使用Powershell启动我的VM

谢谢

Goy*_*uix 9

而不是使用COM对象 - 为什么不使用VBoxManage命令行界面?

您问题的相关命令是:

VBoxManage createvm     --name <name>
                        [--ostype <ostype>]
                        [--register]
                        [--basefolder <path> | --settingsfile <path>]
                        [--uuid <uuid>]

VBoxManage startvm      <uuid>|<name>
                        [--type gui|sdl|vrdp|headless]
Run Code Online (Sandbox Code Playgroud)

VBoxManage可执行文件位于安装目录中,默认情况下为C:\ Program Files\Oralce\VirtualBox(至少从3.2.8版本开始).

使用COM API,似乎VirtualBox.OpenSession方法是您需要使用的方法,但我似乎无法让PowerShell强制使用ISession变量来匹配方法签名并调用该方法.也许通过一些巧妙的反思或其他东西可以使它工作.