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
类,涵盖了其属性和实际应用。从列出适配器到检查状态和管理连接,这些示例展示了强大的网络管理功能。通过这些知识,您可以创建高级网络配置脚本。