我正在尝试在Windows 8中使用新的WMI类MSFT_NetAdapter而不是Win32_NetworkAdapter

using System;
using System.Management;

namespace TestAdapters
{
    class Program
    {
        static void Main(string[] args)
        {
            string query = "SELECT * From MSFT_NetAdapter";
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
            ManagementObjectCollection adaptersCollection = searcher.Get();
            foreach (ManagementObject adapterWmiObject in adaptersCollection) //System.Management.ManagementException
            {
                //...
            }
            Console.WriteLine("end.");
            Console.ReadKey();
        }
    }
}

我在System.Management.ManagementException语句上收到一条foreach并显示以下消息:无效的类

我不知道这是什么意思。我在Windows 8.1 x64下编译并运行了代码,因此此类必须有效。

如何使用MSFT_NetAdapter

最佳答案

此类不在root\Cimv2命名空间中。

root\StandardCimv2命名空间中查找它。

查看以下Powershell:

PS C:\Scripts> Get-WmiObject MSFT_NetAdapter
Get-WmiObject : Invalid class "MSFT_NetAdapter"
At line:1 char:1
+ Get-WmiObject MSFT_NetAdapter
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidType: (:) [Get-WmiObject], ManagementException
    + FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand


PS C:\Scripts> Get-WmiObject MSFT_NetAdapter -Namespace root\StandardCimv2
SUCCESS

10-04 12:31