Класс Win32_NetworkAdapterConfiguration не может получить сведения о PPPoE (протокол "точка — точка" через Ethernet) и VPN (виртуальная частная сеть)

Эта статья поможет устранить проблему, из-за которой классу не Win32_NetworkAdapterConfiguration удается получить сведения о PPPoE (протокол "точка — точка" через Ethernet) и VPN (виртуальная частная сеть).

Применимо к: Windows Vista
Исходный номер базы знаний: 2549091

Симптомы

В Windows Vista и более поздних версиях Win32_NetworkAdapterConfiguration класс не может получить сведения о подключении PPPoE и VPN-подключении.

Если программа предназначена для получения сведений о коммутируемом подключении или виртуальной частной сети с помощью Win32_NetworkAdapterConfiguration класса в Windows XP, она может не работать в Windows Vista и более поздних версиях.

Дополнительные сведения о классе см. в Win32_NetworkAdapterConfiguration разделе класс Win32_NetworkAdapterConfiguration.

Причина

В Windows Vista и более поздних версиях Win32_NetworkAdapterConfiguration класс не создает экземпляр для подключения PPPoE или VPN-подключения. Корпорация Майкрософт подтвердила, что это проблема в нашем продукте.

Разрешение

В Windows Vista и более поздних версиях вы можете получить почти те же сведения, что Win32_NetworkAdapterConfigurationthe и класс о подключении PPPoE или VPN-подключении, используя любой из следующих методов. Было бы высоко оценено, если вы считаете, что любой из следующих методов является приемлемым.

  1. Используйте класс платформа .NET FrameworkNetworkInterface.

    Используйте метод для NetworkInterface.GetAllNetworkInterfaces получения массива NetworkInterface . Затем перейдите по массиву NetworkInterface , чтобы найти NetworkInterface экземпляр со свойством NetworkInterface.NetworkInterfaceType Ppp. Каждое значение PPPoE или VPN-подключения можно получить, ссылаясь на каждое свойство, которое имеет этот экземпляр.

    Дополнительные сведения о NetworkInterface классе или образце кода для этого см. в разделе Класс NetworkInterface.

    Дополнительные сведения о каждом свойстве класса см. в NetworkInterface разделе Класс NetworkInterface.

  2. GetAdaptersAddresses Используйте API.

    GetAdaptersAddresses Используйте API для получения IP_ADAPTER_ADDRESSES структуры. Затем перейдите по связанному IP_ADAPTER_ADDRESSES списку структур, чтобы найти элемент с элементом, для которого IfType задано значение IF_TYPE_PPP. Каждое значение PPPoE или VPN-подключения можно получить, ссылаясь на каждый член элемента .

    Дополнительные сведения об GetAdaptersAddresses API или образце кода для этого см. в разделе Функция GetAdaptersAddresses (iphlpapi.h).

    Дополнительные сведения о каждом элементе структуры см. в IP_ADAPTER_ADDRESSES разделе структура IP_ADAPTER_ADDRESSES_LH (iptypes.h).

Действия по воспроизведению

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")