如何判断网络适配器是否可在Windows上移除

时间:2009-03-18 10:26:15

标签: windows winapi networking

如何判断通过Win32 GetAdaptersInfo()GetAdaptersAddresses()功能检索的给定网络适配器是否可移动,如USB,SmartCard等?

这些功能的文档似乎没有任何获取该信息的方法,所以我假设我必须向Windows询问每个设备,我发现它是否可以通过某种方式移除。

你会建议什么?

1 个答案:

答案 0 :(得分:2)

如果您考虑一下,那么所有适配器都是可移动的(例如PCI,USB,虚拟等) 甚至可以在BIOS中禁用内置NIC。

您真正想知道的是每个适配器的“接口类型”。 此信息可以在Win32_NetworkAdapterConfiguration类的标题属性中找到。您可以使用它(使用该类中的其他信息)来确定每台设备如何连接到机器以及它是否正在使用中。

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
    "SELECT Caption, IPEnabled FROM Win32_NetworkAdapterConfiguration",,48) 
For Each objItem in colItems 
    Wscript.Echo objItem.IPEnabled & " " & objItem.Caption
Next

此外,Win32_NetworkAdapterConfiguration对IPEnabled属性非常有用,因为它可以让您查看是否在适配器上绑定并启用了TCP / IP。

以下是输出示例

False [00000001] 1394 Net Adapter
False [00000002] RAS Async Adapter
False [00000003] WAN Miniport (L2TP)
False [00000004] WAN Miniport (PPTP)
False [00000005] WAN Miniport (PPPOE)
False [00000006] Direct Parallel
False [00000007] WAN Miniport (IP)
False [00000008] Packet Scheduler Miniport
True [00000009] Wireless-B PCI Adapter
False [00000010] Packet Scheduler Miniport
False [00000011] Cisco AnyConnect VPN Virtual Miniport Adapter for Windows
False [00000012] Packet Scheduler Miniport