文章出處

在vmware的PowerCLI和微軟的scvmm的PowerShell中可以通過Get-VM命令來獲取虛擬機的信息。下面我們用代碼的方式去實現,代碼相關類方法就是對命令的封裝。

vmware api的調用方式:

#region  vm 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 #region  vm 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

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()