You could do it with WMI. Here's one we use for disabling the physical adapter to test these types of scenarios.
using System.Management;
using System.Linq;
namespace DisableNIC
{
internal static class Program
{
private static void Main()
{
var wmiQuery = new SelectQuery("SELECT * FROM Win32_NetworkAdapter " +
"WHERE NetConnectionId != null " +
"AND Manufacturer != 'Microsoft' ");
using (var searcher = new ManagementObjectSearcher(wmiQuery))
{
foreach (var item in searcher.Get().OfType<ManagementObject>())
{
if ((string) item["NetConnectionId"] != "Local Area Connection")
continue;
using (item)
{
item.InvokeMethod("Disable", null);
}
}
}
}
}
}
You didn't indicate the OS, but this works in Windows 7 and Windows 8.
Note that you will need to be an administrator for this to function.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…