Win32_NetworkAdapterConfiguration类无法检索有关 PPPoE(通过以太网的点到点协议)和 VPN(虚拟专用网络)的信息

本文可帮助解决此类无法检索有关 PPPoE(通过以太网的点到点协议)和 VPN(虚拟专用网络)的信息的问题 Win32_NetworkAdapterConfiguration

适用于: Windows Vista
原始 KB 数: 2549091

症状

在 Windows Vista 及更高版本上,该 Win32_NetworkAdapterConfiguration 类无法检索有关 PPPoE 连接和 VPN 连接的信息。

如果程序旨在通过使用 Win32_NetworkAdapterConfiguration Windows XP 上的类获取有关拨号连接或虚拟专用网络的信息,则它可能无法在 Windows Vista 及更高版本上运行。

有关该 Win32_NetworkAdapterConfiguration 类的详细信息,请参阅 Win32_NetworkAdapterConfiguration类

原因

在 Windows Vista 及更高版本上,该 Win32_NetworkAdapterConfiguration 类不会为 PPPoE 连接或 VPN 连接创建实例。 Microsoft已确认这是我们产品中的问题。

解决方案

在 Windows Vista 及更高版本上,可以使用以下任一方法检索与类有关 PPPoE 连接或 VPN 连接的信息几乎相同 Win32_NetworkAdapterConfigurationthe 。 如果你认为以下任一方法是可以接受的,会非常感激。

  1. 使用 .NET Framework NetworkInterface 类。

    使用该方法 NetworkInterface.GetAllNetworkInterfaces 获取 NetworkInterface 数组。 然后,浏览 NetworkInterface 数组以查找 NetworkInterface 属性设置为 Ppp 的 NetworkInterface.NetworkInterfaceType 实例。 可以通过引用此实例具有的每个属性来检索 PPPoE 或 VPN 连接的每个值。

    有关此类 NetworkInterface 或示例代码的详细信息,请参阅 NetworkInterface 类

    有关类的每个属性 NetworkInterface 的详细信息,请参阅 NetworkInterface 类

  2. 使用 GetAdaptersAddresses API。

    使用 GetAdaptersAddresses API 获取 IP_ADAPTER_ADDRESSES 结构。 然后,浏览结构的链接列表IP_ADAPTER_ADDRESSES以查找成员集为IF_TYPE_PPPIfType元素。 可以通过引用元素的每个成员来检索 PPPoE 或 VPN 连接的每个值。

    有关此 API 或示例代码的详细信息GetAdaptersAddresses,请参阅 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")