0

在我的 vmware esx 服务器中,我有四个 vmware,例如 Window 7、Window XP、Window Server 2008 和 Window Server 2012。以及每个 vmware 的驱动器信息:

  • Window 7 -> drive C - Used 2GB, Free 2GB, Total 4GB

  • Window XP -> 驱动器 C - 已用 2GB,免费 2GB,总计 4GB

  • Window Server 2008 -> 驱动器 C - 已使用 2GB,免费 2GB,总计 4GB -> 驱动器 D - 已使用 2GB,免费 2GB,总计 4GB

  • Window Server 2012 -> 驱动器 C - 已使用 2GB,免费 2GB,总计 4GB -> 驱动器 D - 已使用 2GB,免费 2GB,总计 4GB

我的问题是:

如何通过 vsphere sdk 获取驱动器详细信息(例如,驱动器 C、Window 7 的已用空间和可用空间)?还有另外3个vmware的驱动信息。

4

2 回答 2

2

回答:

GuestInfo info = vm.getGuest(); //(vm means VirtualMachine object.)
GuestDiskInfo[] dInfos = info.getDisk();
if (dInfos != null) {
  System.out.println("Disk Info");
  for (GuestDiskInfo dInfo : dInfos) {
    System.out.println(" Capacity(GB):"+dInfo.getCapacity()/1024/1024/1024);
    System.out.println(" Free(GB):"+dInfo.getFreeSpace()/1024/1024/1024);
    System.out.println(" Disk Path:"+dInfo.getDiskPath());
    System.out.println("============");
  }
}

**重要:首先需要在每个客户操作系统机器上安装 vmware 工具。从这个问题来看,guest os 是 Window 7、Window Xp、Window Server 2008 和 Window server 2012。

于 2014-11-25T03:33:20.050 回答
2

从 'vm' 对象,您可以通过以下代码获取连接到虚拟机的所有磁盘。

下图显示了 virtualDisk 对象内的信息。

在此处输入图像描述

VirtualMachine vm = getVM(); // get the vm object
VirtualMachineConfigInfo vmConfig = vm.getConfig();
VirtualDevice[] vds = vmConfig.getHardware().getDevice();
for(VirtualDevice vd : vds){
    if(vd instanceof VirtualDisk){
        System.out.println("CapacityInKB : " + ((VirtualDisk) vd).getCapacityInKB());
        System.out.println("Name :"+((VirtualDisk) vd).getDeviceInfo().getLabel());
        //vd object contains many more information
    }
}
于 2017-04-19T12:41:38.120 回答