如何使用WMI枚举Hyper-V来宾上的网络适配器?

时间:2010-02-25 14:17:18

标签: c# wmi hyper-v

我有一个Hyper-V主机,有几个guest虚拟机,每个guest虚拟机都有一个或多个网络适配器。如何枚举这些guest虚拟机上的网络适配器?

具体来说,我正在寻找一个特定的访客,给定一个MAC地址。

我正在使用C#和System.Management

1 个答案:

答案 0 :(得分:2)

我会遗漏一些细节:

  • 在主机上连接到Hyper-V。
  • 枚举机器(SELECT * FROM Msvm_ComputerSystem)。
  • 对于每台计算机,找到关联的Msvm_SyntheticEthernetPort对象。
var ports = computerSystem.GetRelated("Msvm_SyntheticEthernetPort");
foreach (ManagementObject port in ports)
{
  • 抓住设置:
    var portSettings = port.GetRelated("Msvm_SyntheticEthernetPortSettingData");
    foreach (ManagmentObject portSetting in portSettings)
    {
  • 查找配置的MAC地址:
        string macAddress = (string)portSetting .GetPropertyValue("Address");