pennate 发表于 2015-4-3 11:32:18

获取hyper-v和vmware虚机状态

本帖最后由 wuyvzhang 于 2016-8-2 17:24 编辑 <br /><br />  在vmware的PowerCLI和微软的scvmm的PowerShell中可以通过Get-VM命令来获取虚拟机的信息。下面我们用代码的方式去实现,代码相关类方法就是对命令的封装。
  vmware api的调用方式:
#regionvm status
public VirtualMachineOperationEnum GetVMStatus(string vmName)
{
ManagedObjectReference vmMor = util.getServiceUtil().getEntityByName("VirtualMachine", vmName);
VirtualMachineRuntimeInfo info = (VirtualMachineRuntimeInfo)util.getServiceUtil().GetDynamicProperty(vmMor, "runtime");
switch (info.powerState)
{
case VirtualMachinePowerState.poweredOn:
return VirtualMachineOperationEnum.On;
case VirtualMachinePowerState.poweredOff:
return VirtualMachineOperationEnum.Off;
case VirtualMachinePowerState.suspended:
return VirtualMachineOperationEnum.Suspend;
default:
return VirtualMachineOperationEnum.Fault;
}
}
#endregion
  
  微软api的调用方式:
1 #regionvm status
2 public VirtualMachineOperationEnum GetVMStatus(string vmName)
3 {
4   try
5   {
6         switch (client.GetVirtualMachineByName(vmName).Status)
7         {
8             case DataContracts.VMComputerSystemStateInfo.Running:
9               return VirtualMachineOperationEnum.On;
10             case DataContracts.VMComputerSystemStateInfo.Paused:
11               return VirtualMachineOperationEnum.Paused;
12             case DataContracts.VMComputerSystemStateInfo.PowerOff:
13               return VirtualMachineOperationEnum.Off;
14             default:
15               return VirtualMachineOperationEnum.Fault;
16         }
17   }
18   catch { return VirtualMachineOperationEnum.Fault; }
19 }
20 #endregion
  

www.138923.com SO娱乐城:真_人.足球.彩票齐全| 开户送10元.首存送58元.手机可投ゅ注任何游戏顶级信用ゅ提现即时到账SO.CC
页: [1]
查看完整版本: 获取hyper-v和vmware虚机状态