【问题标题】:Access vSphere 5, ESXi, Virtual Machine environment: processes, file system访问 vSphere 5、ESXi、虚拟机环境:进程、文件系统
【发布时间】:2011-09-29 17:11:00
【问题描述】:

我们有一个 vSphere 5 Hypervisor,它运行几个 Windows XP/Vista/7 虚拟机,每个虚拟机都安装了 VMWare 工具。

希望能够:

  1. 按名称打开虚拟机
  2. 将 ISO 映像从本地计算机连接到已打开电源的 VM
  3. 将少量文件复制到 VM 中的特定文件夹(NANT 和 NUNIT 带有测试的二进制文件和 dll)
  4. 运行刚刚复制的可执行文件并等待它完成
  5. 从 TEMP 文件夹中获取文件,该文件的路径必须由 读取 VM 的环境变量
  6. 确定特定进程是否在 VM 中运行

我想使用 VmWare.Vim.dll,它是 VmWare Infrastructure (VI) 工具包的一部分。我用 C# 和 .NET 4 编写代码。 开/关操作我可以轻松完成,但其他人呢?我不知道如何进行这些操作。在文档中没有找到任何东西。 也许还有其他可以帮助我的工具/API?

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

最好的问候, 亚历克斯

【问题讨论】:

  • VIX 仍然是 VM 内任何事情的答案。也许您需要更新的版本?

标签: c# vmware


【解决方案1】:

查看 vSphere Web 服务 SDK: 来宾文件管理器, GuestOperationsManager 和 GuestProcessManager (http://pubs.vmware.com/vsphere-50/index.jsp?topic=/com.vmware.wssdk.apiref.doc_50/vim.vm.guest.ProcessManager.html)

【讨论】:

    【解决方案2】:

    我不是像你这样的开发人员,请管理 VM 环境。使用 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
    

    希望对你有所帮助

    【讨论】:

      【解决方案3】:

      我们设法创建了一个运行 vSphere 虚拟机的 NANT 任务。 谢谢大家的指点!

      【讨论】:

      • LucID,我有相同的工作场景,并尝试使用 vSphere 5.0 API 和 .Net Framework 3.5 (C#) 实现相同的目标。我也在使用 Vmware.Vim.dll。我能够执行一些其他 vSphere 操作和任务。我被困在具有相同场景的虚拟机客户操作中。你能解释一下你的解决方案以及你是如何解决的吗?谢谢。
      猜你喜欢
      • 2021-10-03
      • 2017-06-05
      • 1970-01-01
      • 1970-01-01
      • 2019-01-24
      • 2015-10-30
      • 2017-02-25
      • 1970-01-01
      • 2020-07-27
      相关资源
      最近更新 更多