2014-11-20 11 views
0

, I는 윈도우 7과 같이 네 개의 VM웨어가, 윈도우 XP, 윈도우 서버 2008 및 윈도우 서버 2012과 각 VM웨어에 대한 정보를 드라이브 :Vmware ESX에서 각 Vmware의 드라이브 정보를 Java 기반 Vsphere SDK를 통해 얻을 수있는 방법이 있습니까? 내 VM웨어 ESX 서버에서

  • 윈도우 7 -> C 드라이브 - 중고 2기가바이트, 무료 2기가바이트, 총 4기가바이트

  • 윈도우 XP -> C 드라이브 - 사용 2기가바이트, 무료 2기가바이트, 총 4기가바이트

  • 윈도우 서버 2008 -> C 드라이브 - 사용 2기가바이트, 무료 2기가바이트, 총 4GB,363,210 -> 드라이브 D - 2기가바이트, 무료 2기가바이트 사용, 총 4기가바이트

  • 윈도우 서버 2012 -> C 드라이브 - 사용 2기가바이트, 무료 2기가바이트, 총 4기가바이트 -> 드라이브 D - 사용 2기가바이트, 무료 2기가바이트, 총 4기가바이트

내 질문은 :

I 드라이브 상세 정보를받을 수 있나요은 vSphere SDK에서 (예를 들어, C 드라이브, 공간, 윈도우 7의 여유 공간을 사용) 방법

? 또한 다른 3 개의 VM웨어의 정보를 운전합니다.

답변

1

답변 :

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("============"); 
    } 
} 

** 중요 : 첫째, 각 게스트 OS 시스템에서 VM웨어 도구를 설치해야합니다. 이 질문에서 게스트 OS는 Window 7, Window XP, Window Server 2008 및 Window server 2012입니다.

0

'vm'개체를 사용하면 아래 코드에 따라 가상 컴퓨터에 연결된 모든 디스크를 가져올 수 있습니다.

아래 이미지는 virtualDisk 개체 안에 정보를 표시합니다.

enter image description here

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 
    } 
}