VirtualBox + Powershell? - PullRequest
       9

VirtualBox + Powershell?

3 голосов
/ 03 октября 2010

Я создал виртуальную машину.Сейчас я пытаюсь запустить его с помощью Powershell.Я искал по всему интернету какие-либо подробности о том, как это сделать.Это единственный код, который я нашел ...

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

$vBox.Machines

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

(Источник: http://www.ravichaganti.com/blog/?p=1275)

На самом деле, я не могу найти какую-либо документацию по com-объектам на virtualbox.org.Будучи опытным специалистом в PowerShell, я потратил некоторое время на изучение com-объекта с ...

$vBox | gm

Я пробовал все, о чем мог думать, но получал только ошибки. Мой вопрос: как запустить виртуальную машину с помощью Powershell?

Спасибо

Ответы [ 2 ]

9 голосов
/ 07 октября 2010

Вместо использования объектов 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 в соответствие с сигнатурой метода и вызвать метод. Может быть, с помощью какого-то умного размышления или чего-то такого, что можно заставить работать.

3 голосов
/ 20 декабря 2011

Следующая ссылка содержит статью об использовании VirtualBox в PowerShell и содержит удобный модуль, содержащий несколько хороших командлетов PowerShell.

Хотя вы можете использовать командную строку, команда длинная, она не интерактивнаяи вы не можете легко разобрать результаты (например, список машин и т. д.).Это работает только с PowerShell.

Модуль в ссылке содержит объект-оболочку, поэтому вам не нужно беспокоиться об удалении COM-объекта или чего-либо еще.

Вот ссылка: http://jdhitsolutions.com/blog/scripting/1502/managing-virtualbox-with-powershell/

...