3

我已经创建了一个虚拟机。现在我正在尝试使用 Powershell 启动它。我已经在互联网上搜索了有关如何执行此操作的任何详细信息。这是我找到的唯一代码...

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

$vBox.Machines

$vBox.CreateMachine()
#----------------------

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

事实上,我在 virtualbox.org 上找不到任何关于 com 对象的文档。我非常精通powershell,我花了一些时间探索com对象......

$vBox | gm

我尝试了所有我能想到的东西,但只收到错误。我的问题是如何使用 Powershell 启动我的虚拟机

谢谢

4

2 回答 2

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]

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

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

于 2010-10-07T15:07:44.550 回答
3

以下链接包含一篇关于在 PowerShell 中使用 VirtualBox 的文章,并包含一个方便的模块,其中包含一些不错的 PowerShell cmdlet。

虽然您可以使用命令行,但命令很长,它不是交互式的,而且您无法轻松解析结果(例如机器列表等)。这仅适用于 PowerShell。

链接中的模块包含一个包装对象,因此您不必担心处理 COM 对象或任何东西。

这是链接:http: //jdhitsolutions.com/blog/scripting/1502/managing-virtualbox-with-powershell/

于 2011-12-20T01:05:30.850 回答