如何判断通过Win32 GetAdaptersInfo()或GetAdaptersAddresses()功能检索的给定网络适配器是否可移动,如USB,SmartCard等?
这些功能的文档似乎没有任何获取该信息的方法,所以我假设我必须向Windows询问每个设备,我发现它是否可以通过某种方式移除。
你会建议什么?
答案 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