当前位置: 首页 > 工具软件 > Python Hyper > 使用案例 >

python wmi hid_Python通过WMI实现Hyper-V的远程管理

司寇星海
2023-12-01

通过WMI实现Hyper-V的远程管理

【摘要】

最近公司需要做Hyper-V的远程管理,可以实现启动、重启、关闭Hyper-V上面的虚拟机以及监控虚拟机运行的状态等。查阅了很多资料,最终决定通过调用的WMI包来实现。

【正文】

一Python实现Hyper-V的远程管理1、连接服务器并获取WMI对象

conn = wmi.WMI(computer=ipaddress,namespace='Root\\virtualization\\v2',user=username,password=password)2、获取虚拟机列表信息conn.query("select Name,ElementName,Status,EnabledState from Msvm_ComputerSystem")

Msvm_ComputerSystem是用来保存Hyper-V虚拟机的信息的类,该类的属性如下:

[Dynamic,

Provider("VmmsWmiInstanceAndMethodProvider")]

class

Msvm_ComputerSystem : CIM_ComputerSystem

{

string   Caption;

string   Description;

string   ElementName;

datetime InstallDate;

uint16   OperationalStatus[];

string   StatusDescriptions[];

string   Status;

uint16   HealthState = 5;

uint16   EnabledState;

string   OtherEnabledState;

uint16   RequestedState;

uint16   EnabledDefault = 2;

datetime TimeOfLastStateChange;

string   CreationClassName;

string   Name = "GUID";

string   PrimaryOwnerName;

string   PrimaryOwnerContact;

string   Roles[];

string   NameFormat;

string   OtherIdentifyingInfo[];

string   IdentifyingDescriptions[];

uint16   Dedicated[];

string

OtherDedicatedDescriptions[];

uint16   ResetCapability = 1;

uint16

PowerManagementCapabilities[];

uint64   OnTimeInMilliseconds;

datetime TimeOfLastConfigurationChange;

uint32   ProcessID;

uint16   AssignedNumaNodeList[];

};3、获取Msvm_VirtualSystemManagementService对象

//获取Msvm_ComputerSystem对象

vmSystem = conn.Msvm_ComputerSystem(ElementName="VmName")//获取Msvm_VirtualSystemManagementService对象

vmManagement =

conn.Msvm_VirtualSystemManagementService()4、执行启动、重启、关闭、保存等操作

vmSystem[0].RequestStateChange(state)

当state的值分别为不同数字时代表着不同的含义,具体见下表:

含义

2

开启虚拟机

3

关闭虚拟机

6

保存

11

重启

 类似资料: