如何获取Windows网络适配器使用的连接名称?

The*_*ask 5 .net c# wmi

是否有可能使用WMI查询?

我目前的代码:

ManagementObjectSearcher searcher = new ManagementObjectSearcher(
                                       "SELECT * FROM Win32_NetworkAdapte");

foreach (ManagementObject queryObj in searcher.Get())
{
     Console.WriteLine(queryObj[??]);        
}
Run Code Online (Sandbox Code Playgroud)

我尝试从以下位置获取连接名称:

Control Panel \ Network and Internet \ Network Connections
Run Code Online (Sandbox Code Playgroud)

sll*_*sll 3

使用下面的代码,您将能够转储网络适配器的所有属性,您需要Name属性:

ManagementObjectSearcher searcher = new ManagementObjectSearcher(
    "SELECT * FROM Win32_NetworkAdapter");

foreach (ManagementObject adapter in searcher.Get())
{
    StringBuilder propertiesDump = new StringBuilder();
    foreach (var property in adapter.Properties)
    {
        propertiesDump.AppendFormat(
            "{0} == {1}{2}", 
            property.Name, 
            property.Value, 
            Environment.NewLine);        
    }
}
Run Code Online (Sandbox Code Playgroud)

或者简单地使用 LINQ (add using System.Linq):

foreach (ManagementObject adapter in searcher.Get())
{
   string adapterName = adapter.Properties
                               .Cast<PropertyData>()
                               .Single(p => p.Name == "Name")
                               .Value.ToString();
}
Run Code Online (Sandbox Code Playgroud)

PS:另请注意,您在 WMI 查询中输入错误 - 忘记rAdapter:Win32_NetworkAdapte_r_