C# 访问vSphere 5、ESXi、虚拟机环境:进程、文件系统

C# 访问vSphere 5、ESXi、虚拟机环境:进程、文件系统,c#,vmware,C#,Vmware,我们有一个vSphere 5虚拟机监控程序,它运行几个安装了VMWare工具的Windows XP/Vista/7虚拟机 希望能够: 按虚拟机名称启动虚拟机 将ISO映像从本地计算机连接到已通电的VM 将少量文件复制到VM、特定文件夹NANT和NUNIT 带测试的二进制文件和DLL 运行刚复制的可执行文件并等待它完成 从临时文件夹中获取文件,其路径必须由 读取VM的环境变量 确定特定进程是否在VM内运行 我想使用VmWare.Vim.dll,它是VmWare Infrastructure VI工

我们有一个vSphere 5虚拟机监控程序,它运行几个安装了VMWare工具的Windows XP/Vista/7虚拟机

希望能够:

按虚拟机名称启动虚拟机 将ISO映像从本地计算机连接到已通电的VM 将少量文件复制到VM、特定文件夹NANT和NUNIT 带测试的二进制文件和DLL 运行刚复制的可执行文件并等待它完成 从临时文件夹中获取文件,其路径必须由 读取VM的环境变量 确定特定进程是否在VM内运行 我想使用VmWare.Vim.dll,它是VmWare Infrastructure VI工具包的一部分。我用C和.NET4编写代码。 通电/断电操作我可以轻松完成,但其他操作呢?我不知道怎么做这些手术。在文档中没有找到任何内容。 也许还有其他工具/API可以帮助我

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

致以最良好的祝愿,
Alex

我不是像你这样的开发人员,请管理VM环境。使用VMware提供的API/SDK,您当然可以完成您希望完成的任务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

希望这对您有所帮助

了解vSphere Web Services SDK: 客房部经理, 客房运营经理和
宾客流程经理http://pubs.vmware.com/vsphere-50/index.jsp?topic=/com.vmware.wssdk.apiref.doc_50/vim.vm.guest.ProcessManager.html

我们设法创建了一个NANT任务来操作vSphere虚拟机。
谢谢你们的提示

VIX仍然是虚拟机内部所有问题的答案。也许您需要一个更新的版本?LucID,我有相同的工作场景,并尝试使用vSphere 5.0 API和.Net Framework 3.5 C实现相同的目标。我也在使用Vmware.Vim.dll。我可以做一些其他的vSphere操作和任务。我被困在同样场景的Vm来宾操作中。你能再解释一下你的解决方案以及你是如何解决的吗?谢谢