win2012 获取hyper-v中的虚拟机的网卡信息失败
我在获取win2012上的hyper-v中的虚拟机的网卡信息时,获取不到connection属性的值,代码如下
ManagementObjectCollection address_set = m_settings.GetRelated("Msvm_SyntheticEthernetPortSettingData");
List<Nic> nicinfo = new List<Nic>();
foreach (ManagementObject enic in address_set)
{
string[] connections = (string[ ])enic["Connection"];
}
connections未获取到任何信息,开始怀疑是uac控制的问题,后来关闭uac还是获取不到。
另外,我在查询hyper-v的虚拟机交换机的信息时也失败:
string query = string.Format("Select * From Msvm_VirtualSwitch");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, new ObjectQuery(query));
ManagementObjectCollection virtualSwitchs = searcher.Get();
ManagementObject virtualSwitch = null;
foreach (ManagementObject instance in virtualSwitchs)
{
virtualSwitch = instance;
break;
}
访问virtualSwitchs.Count会引发异常,怀疑是查询语句根本没有获取到VirtualSwitch。
最重要的是,上述两个问题,同样的代码在win2008上运行完全没问题。