Как получить имя подключения, используемое сетевым адаптером Windows? - PullRequest
5 голосов
/ 25 декабря 2011

Возможно ли получить его с помощью запроса WMI?

мой текущий код:

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

foreach (ManagementObject queryObj in searcher.Get())
{
     Console.WriteLine(queryObj[??]);        
}

Я пытался получить имя соединения от:

Control Panel \ Network and Internet \ Network Connections

1 Ответ

3 голосов
/ 25 декабря 2011

Используя приведенный ниже код, вы сможете сбросить все свойства сетевого адаптера, вам необходимо 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);        
    }
}

ИЛИ просто используя LINQ (добавьте using System.Linq):

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

PS: Также имейте в виду, что вы опечатали в запросе WMI - забыли r в Adapter: Win32_NetworkAdapte_r_

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...