本文可帮助解决此类无法检索有关 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 。
如果你认为以下任一方法是可以接受的,会非常感激。
使用 .NET Framework
NetworkInterface类。使用该方法
NetworkInterface.GetAllNetworkInterfaces获取NetworkInterface数组。 然后,浏览NetworkInterface数组以查找NetworkInterface属性设置为 Ppp 的NetworkInterface.NetworkInterfaceType实例。 可以通过引用此实例具有的每个属性来检索 PPPoE 或 VPN 连接的每个值。有关此类
NetworkInterface或示例代码的详细信息,请参阅 NetworkInterface 类。有关类的每个属性
NetworkInterface的详细信息,请参阅 NetworkInterface 类。使用
GetAdaptersAddressesAPI。使用
GetAdaptersAddressesAPI 获取IP_ADAPTER_ADDRESSES结构。 然后,浏览结构的链接列表IP_ADAPTER_ADDRESSES以查找成员集为IF_TYPE_PPP的IfType元素。 可以通过引用元素的每个成员来检索 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")