Access vSphere 5, ESXi, среда виртуальной машины: процессы, файловая система - PullRequest
1 голос
/ 29 сентября 2011

У нас есть гипервизор vSphere 5, который запускает несколько виртуальных машин Windows XP / Vista / 7 с установленными на каждой из них инструментами VMWare.

Хотел бы иметь возможность:

  1. powerна виртуальной машине под ее именем
  2. подключите образ ISO с локального компьютера к включенной виртуальной машине
  3. скопируйте несколько файлов на виртуальную машину, в определенную папку (двоичные файлы NANT и NUNIT и dll стесты)
  4. запустить только что скопированный исполняемый файл и дождаться его завершения
  5. получить файл из папки TEMP, путь которого нужно определить, прочитав переменную Environment виртуальной машины
  6. определить, работает ли определенный процесс внутри VM

. Я хотел бы использовать VmWare.Vim.dll, который является частью набора инструментов VmWare Infrastructure (VI).Я кодирую в C # и .NET 4. Операции включения / выключения питания я мог бы легко выполнить, но как насчет других?Я понятия не имею, как сделать эти операции.Ничего не найдено в документации.Возможно, есть другие инструменты / API, которые могли бы мне помочь?

Ранее мы использовали оболочку VixCOM и Vestris.VmWareLib, но у нас была простая рабочая станция VMWare.Теперь мы перешли на vSphere, и эти API не работают.

С наилучшими пожеланиями, Алекс

Ответы [ 3 ]

0 голосов
/ 24 апреля 2012

Посмотрите на vSphere Web Services SDK: GuestFileManager, GuestOperationsManager и GuestProcessManager (http://pubs.vmware.com/vsphere-50/index.jsp?topic=/com.vmware.wssdk.apiref.doc_50/vim.vm.guest.ProcessManager.html)

0 голосов
/ 31 июля 2012

Нам удалось создать задачу NANT, которая работает с виртуальными машинами vSphere. Спасибо за советы, ребята!

0 голосов
/ 25 февраля 2012

Я не такой разработчик, как вы, управляйте виртуальной средой. Сделать то, что вы хотите, безусловно, можно с помощью API / SDK, предоставляемого VMware (http://www.vmware.com/support/developer/vc-sdk/index.html),, но может быть более простой способ. Один из способов сделать это - использовать PowerCLi, который представляет собой оснастку для PowerShell, которая, как вы, наверное, знаете, основан на C # и может импортировать его библиотеки.

Тогда вы могли бы сделать что-то подобное и быть в курсе:

#start VM
Start-VM -VM $vmName

#mount ISO file
Get-VM -Name $vmName | Get-CDDrive | Set-CDDrive -v -IsoPath <ISO-file-name> -Confirm:$false

#copy files
Copy-Item -Path $somePath -Destination $someDestination

#invoke 'script' that will run .exe file (example exe below)
$script = '"%programfiles%\Common Files\Microsoft Shared\MSInfo\msinfo32.exe" /report "%tmp%\inforeport"'
Invoke-VMScript -ScriptText $script -VM VM -HostCredential $hostCredential -GuestCredential $guestCredential -ScriptType Bat

#check for list of processes running
$script2 = '"WMIC PROCESS get Caption,Commandline,Processid"'
Invoke-VMScript -ScriptText $script2 -VM VM -HostCredential $hostCredential -GuestCredential $guestCredential -ScriptType Bat

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...