zoukankan      html  css  js  c++  java
  • 获取hyper-v和vmware虚机状态

    在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
  • 相关阅读:
    Commonjs规范 浏览器运行
    node Commonjs规范
    Node 支持ES6 modules
    node only 对象属性白名单
    babel 关键配置
    Linux测试硬盘读性能的常用工具-hdparm
    linux下/etc/profile、/etc/bashrc、~/.bashrc 和~/.bash_profile文件的区别
    storcli64和smartctl定位硬盘的故障信息
    数据库迁移的几种方式
    linux中截取字段与#、$区别
  • 原文地址:https://www.cnblogs.com/yuefei/p/3651589.html
Copyright © 2011-2022 走看看