VBScript Win32_NetworkAdapter 类
最后修改于 2025 年 4 月 9 日
VBScript 中的 Win32_NetworkAdapter 类通过 WMI 提供了对网络适配器属性的访问。它代表了 Windows 系统中的网络接口硬件和软件。此类提供了有关计算机上安装的每个网络适配器的详细信息。
Win32_NetworkAdapter 包含 MAC 地址、适配器类型、速度和连接状态等属性。它是 Windows Management Instrumentation (WMI) 基础架构的一部分。本教程通过实际示例涵盖了该类,以演示其用法。
Win32_NetworkAdapter 类概述
Win32_NetworkAdapter 类包含 50 多个属性,用于描述网络接口。这些属性包括物理和逻辑网络适配器。该类提供对适配器配置的只读访问。
关键属性包括 Name、MACAddress、Speed 和 NetConnectionStatus。可以使用 VBScript 的 GetObject 函数通过 WMI 访问该类。理解此类有助于编写网络配置脚本。
列出所有网络适配器
此示例演示了如何检索系统上所有网络适配器的基本信息。它显示了适配器名称、MAC 地址和连接状态。该脚本连接到 WMI 并查询 Win32_NetworkAdapter 类。
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colAdapters = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter")
For Each objAdapter in colAdapters
WScript.Echo "Name: " & objAdapter.Name
WScript.Echo "MAC Address: " & objAdapter.MACAddress
WScript.Echo "Status: " & objAdapter.NetConnectionStatus
WScript.Echo "---------------------"
Next
该脚本创建一个 WMI 连接并执行对所有网络适配器的查询。然后,它遍历每个适配器并显示关键属性。输出包括适配器名称、MAC 地址和当前的连接状态。
过滤物理网络适配器
此示例演示了如何仅过滤物理网络适配器。许多系统都有不是实际硬件的虚拟适配器。该脚本使用 WQL 查询来排除虚拟和非物理适配器。
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
strQuery = "SELECT * FROM Win32_NetworkAdapter WHERE PhysicalAdapter = True"
Set colAdapters = objWMIService.ExecQuery(strQuery)
For Each objAdapter in colAdapters
WScript.Echo "Physical Adapter: " & objAdapter.Name
WScript.Echo "Adapter Type: " & objAdapter.AdapterType
WScript.Echo "Speed: " & objAdapter.Speed / 1000000 & " Mbps"
WScript.Echo "---------------------"
Next
该脚本向 WQL 查询添加 WHERE 子句以过滤物理适配器。然后,它显示每个物理适配器的名称、类型和速度。速度从比特转换为兆比特以便于阅读。
检查网络连接状态
此示例演示了如何检查网络适配器的连接状态。它将数字状态码转换为人类可读的文本。该脚本有助于识别当前哪些适配器已连接。
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colAdapters = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter")
For Each objAdapter in colAdapters
Select Case objAdapter.NetConnectionStatus
Case 0 statusText = "Disconnected"
Case 1 statusText = "Connecting"
Case 2 statusText = "Connected"
Case 3 statusText = "Disconnecting"
Case 4 statusText = "Hardware not present"
Case 5 statusText = "Hardware disabled"
Case 6 statusText = "Hardware malfunction"
Case 7 statusText = "Media disconnected"
Case 8 statusText = "Authenticating"
Case 9 statusText = "Authentication succeeded"
Case 10 statusText = "Authentication failed"
Case Else statusText = "Unknown status"
End Select
WScript.Echo objAdapter.Name & ": " & statusText
Next
该脚本检索所有网络适配器并检查它们的连接状态。它使用 Select Case 语句来转换数字状态码。每个适配器的名称和可读状态都会在输出中显示。
查找具有 IP 地址的适配器
此示例演示了如何查找已分配 IP 地址的网络适配器。它结合了 Win32_NetworkAdapter 和 Win32_NetworkAdapter-Configuration 类的信息。该脚本显示具有活动 IP 配置的适配器。
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
strQuery = "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True"
Set colConfigs = objWMIService.ExecQuery(strQuery)
For Each objConfig in colConfigs
Set colAdapters = objWMIService.ExecQuery( _
"SELECT * FROM Win32_NetworkAdapter WHERE DeviceID = " & objConfig.Index)
For Each objAdapter in colAdapters
WScript.Echo "Adapter: " & objAdapter.Name
WScript.Echo "MAC: " & objAdapter.MACAddress
WScript.Echo "IP: " & Join(objConfig.IPAddress, ", ")
WScript.Echo "---------------------"
Next
Next
该脚本首先查询已启用的网络适配器配置。对于每个配置,它通过 DeviceID 查找相应的适配器。输出显示适配器名称、MAC 地址和已分配的 IP 地址。这有助于识别活动的网络接口。
禁用网络适配器
这个高级示例演示了如何使用 WMI 禁用网络适配器。它首先列出可用的适配器,然后禁用选定的适配器。请注意,这需要管理员权限。
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colAdapters = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter")
' List adapters first
WScript.Echo "Available Network Adapters:"
i = 1
For Each objAdapter in colAdapters
WScript.Echo i & ") " & objAdapter.Name
i = i + 1
Next
' Prompt for adapter to disable
adapterIndex = InputBox("Enter the number of the adapter to disable:")
If adapterIndex = "" Then WScript.Quit
' Find and disable the selected adapter
i = 1
For Each objAdapter in colAdapters
If i = CInt(adapterIndex) Then
WScript.Echo "Disabling " & objAdapter.Name & "..."
errDisable = objAdapter.Disable()
If errDisable = 0 Then
WScript.Echo "Adapter disabled successfully"
Else
WScript.Echo "Error disabling adapter: " & errDisable
End If
Exit For
End If
i = i + 1
Next
该脚本首先列出所有可用的网络适配器及其编号。它提示用户通过编号选择适配器。然后使用 Disable 方法禁用所选适配器。错误处理会检查操作是否成功。
来源
在本文中,我们探讨了 VBScript 中的 Win32_NetworkAdapter 类,涵盖了其属性和实际应用。从列出适配器到检查状态和管理连接,这些示例展示了强大的网络管理功能。通过这些知识,您可以创建高级网络配置脚本。