2011-12-25 22 views
5

¿Es posible obtenerlo usando la consulta WMI?¿Cómo obtener el nombre de conexión utilizado por el adaptador de red de Windows?

mi código actual:

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

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

estoy intentó obtener el nombre de conexiones:

Control Panel \ Network and Internet \ Network Connections 
+0

Es posible que desee la propiedad 'name' de Win32_NetworkConnection. – vcsjones

Respuesta

3

Usando código de abajo que sería capaz de volcado de todas las propiedades del adaptador de red, es necesario Name propiedad:

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);   
    } 
} 

o simplemente utilizando LINQ (añadir using System.Linq) :

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

PS: También tenga en cuenta que hemos error tipográfico en la consulta WMI - olvidó r en Adapter: Win32_NetworkAdapte_r_

Cuestiones relacionadas