2011-12-25 22 views
5

Có thể sử dụng truy vấn WMI không?Cách lấy tên kết nối được bộ điều hợp Mạng Windows sử dụng?

mã hiện tại của tôi:

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

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

Tôi đang cố gắng lấy tên kết nối từ:

Control Panel \ Network and Internet \ Network Connections 
+0

Bạn có thể muốn 'cái tài sản của Win32_NetworkConnection Name'. – vcsjones

Trả lời

3

Sử dụng mã bên dưới, bạn sẽ là bãi có thể tất cả các thuộc tính của card mạng, bạn cần Name thuộc tính:

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

HOẶC chỉ cần sử dụng LINQ (thêm using System.Linq) :

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

PS: Cũng lưu ý bạn đã typo trong WMI truy vấn - quên r trong Adapter: Win32_NetworkAdapte_r_

Các vấn đề liên quan