2011-09-29 106 views
1

我们有一个vSphere 5虚拟机管理程序,它运行少数安装有VMWare工具的Windows XP/Vista/7虚拟机。访问vSphere 5,ESXi,虚拟机环境:进程,文件系统

想能够:

  1. 电源在虚拟机上用它的名字
  2. 从本地机器上的VM
  3. 拷贝几个文件连接的ISO映像通电以一个虚拟机,到特定文件夹(NANT和NUnit 二进制文件和DLL与测试)
  4. 运行一个刚刚复制可执行文件,等到它完成
  5. 从TEMP文件夹,路径必须被确定获取文件 读取的VM
  6. 环境变量确定特定过程是否被内VM

我想用VmWare.Vim.dll其是VMware基础架构的一部分,(VI)工具箱运行。我使用C#和.NET 4编写代码。 开机/关机操作我可以轻松完成,但其他人呢?我不知道如何做这些操作。没有找到任何文件。 也许有其他工具/ API可以帮助我?

此前我们使用VixCOM和Vestris.VmWareLib包装,但我们有一个简单的VMWare工作站。现在我们转到vSphere并且这些API不起作用。

最好的问候, 亚历

+0

VIX仍然是虚拟机内部任何内容的答案。也许你需要更新的版本? – Joe

回答

0

看的vSphere Web服务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

我不喜欢自己的开发商,做管理VM ENVT。使用VMware(http://www.vmware.com/support/developer/vc-sdk/index.html)提供的API/SDK可以做到您想要做的事情,但可能会更容易办法。一种方法是使用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 

希望这是一些帮助

0

我们设法创建NAN T任务来运行vSphere虚拟机。 感谢提示家伙!

+0

LucID,我在工作中使用相同的场景,并尝试使用vSphere 5.0 API和.Net Framework 3.5(C#)实现相同的目标。我也在使用Vmware.Vim.dll。我能够做一些其他的vSphere操作和任务。我被卡住在Vm客人操作与相同的情况。你能否解释一下你的解决方案以及你如何解决它?谢谢。 – 2013-01-29 23:08:56