win10\win11下使用WMI操作网络适配器
参考资料:
https://devblogs.microsoft.com/scripting/renaming-network-adapters-by-using-powershell/
https://docs.microsoft.com/zh-cn/windows/win32/cimwin32prov/win32-networkadapterconfiguration
https://docs.microsoft.com/zh-cn/windows/win32/cimwin32prov/win32-networkadapter
使用win32-networkadapter获取网卡信息,修改在控制面中的名称,启用|禁用网卡

/// <summary> /// 网卡列表 /// </summary> public List<NetworkAdapter> NetWorkList() { string manage = @"SELECT * From Win32_NetworkAdapter WHERE Manufacturer!='Microsoft' AND NOT PNPDeviceID LIKE 'ROOT\\%' ";//查询所有物理网卡 ManagementObjectSearcher searcher = new ManagementObjectSearcher(manage); ManagementObjectCollection collection = searcher.Get(); List<NetworkAdapter> netWorkList = new List<NetworkAdapter>(); foreach (ManagementObject obj in collection) { bool enabled = Convert.ToBoolean(obj["NetEnabled"] ?? false);//是否使用 string connectionId = obj["NetConnectionID"]?.ToString();//网口名称 string productName = obj["ProductName"]?.ToString();//网卡名称 string Description = obj["Description"]?.ToString();//描述 string name = obj["Name"]?.ToString();//适配器名称 string manufacturer = obj["Manufacturer"]?.ToString();//制造商 if (productName == "Intel(R) PRO/1000 PT Dual Port Server Adapter")//test { obj["NetConnectionID"] = "test";//控制面板中网口的名称 obj.Put();//尝试重命名 try { var a = obj.InvokeMethod("Disable", null);//尝试禁用 } catch { } var ab = obj.InvokeMethod("Enable", null);//尝试启用 } netWorkList.Add(new NetworkAdapter() { ConnectionId = connectionId, Name = name, ProductName = productName, Description = Description, IsEnabled = enabled }); } return netWorkList; }

浙公网安备 33010602011771号