Я не знал, что NetworkInterface.GetAllNetworkInterfaces () не возвращал отключенные интерфейсы.
В любом случае, вы можете попробовать использовать API WMI через System.Management.dll
, который доступен в .NET Framework (вы должныдобавьте эту ссылку в ваш проект), я сделал тест, и он позволяет вам взаимодействовать даже с отключенными сетевыми интерфейсами.
Следующий пример дает вам представление о том, как работать с WMI через этот API, я в значительной степениизвлек это из документации:
using System;
using System.Management;
...
void ListNetworkAdapters()
{
var query = new ObjectQuery("SELECT * FROM Win32_NetworkAdapter");
using (var searcher = new ManagementObjectSearcher(query))
{
var queryCollection = searcher.Get();
foreach (var m in queryCollection)
{
Console.WriteLine("ServiceName : {0}", m["Name"]);
Console.WriteLine("MACAddress : {0}", m["Description"]);
Console.WriteLine();
}
Console.ReadLine();
}
}
С документацией можно ознакомиться здесь: https://docs.microsoft.com/en-us/windows/desktop/cimwin32prov/win32-networkadapter