VBScript InstancesOf 方法
最后修改于 2025 年 4 月 9 日
VBScript 中的 InstancesOf
方法是 Windows Management Instrumentation (WMI) 接口的一部分。它会查询 WMI 以获取指定类的所有实例。此方法返回一个符合查询条件的对象的集合。它通常用于系统管理和监控任务。
InstancesOf
提供了对硬件、软件和系统信息的访问。它通过 WMI 实现了强大的系统管理功能。本教程将通过实际示例介绍 InstancesOf
的用法,以演示其在各种场景下的应用。
InstancesOf 方法概述
InstancesOf
方法在 WMI 服务对象上调用。它接受一个参数:要查询的 WMI 类名。该方法返回一个 SWbemObject 实例的集合,代表被查询的对象。
主要功能包括访问系统信息和硬件详细信息。它需要适当的 WMI 权限才能成功执行。正确配置后,InstancesOf
可用于本地和远程系统。
基本进程枚举
此示例演示了使用 InstancesOf
查询正在运行的进程。它展示了如何检索基本的进程信息。该脚本连接到 WMI 并查询 Win32_Process 类。
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colProcesses = objWMIService.InstancesOf("Win32_Process") For Each objProcess in colProcesses WScript.Echo "Process: " & objProcess.Name & " (ID: " & objProcess.ProcessId & ")" Next
该脚本连接到本地 WMI 服务并查询所有进程。然后,它遍历集合,显示每个进程的名称和 ID。这是 WMI 数据检索的一个基础示例。
查询磁盘驱动器
此示例展示了如何检索物理磁盘驱动器的信息。它演示了查询 Win32_DiskDrive 类。该脚本显示每个已安装磁盘的基本驱动器属性。
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colDisks = objWMIService.InstancesOf("Win32_DiskDrive") For Each objDisk in colDisks WScript.Echo "Model: " & objDisk.Model WScript.Echo "Size: " & Round(objDisk.Size/1073741824, 2) & " GB" WScript.Echo "Interface: " & objDisk.InterfaceType WScript.Echo "---" Next
该脚本连接到 WMI 并查询磁盘驱动器信息。它显示每个驱动器的型号、大小(转换为 GB)和接口类型。此示例展示了实际的硬件信息检索。
检查已安装软件
此示例演示了使用 Win32_Product 类查询已安装的软件。它展示了如何检索软件名称和版本。该脚本提供了基本的软件清单功能。
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colSoftware = objWMIService.InstancesOf("Win32_Product") For Each objProduct in colSoftware WScript.Echo "Name: " & objProduct.Name WScript.Echo "Version: " & objProduct.Version WScript.Echo "Vendor: " & objProduct.Vendor WScript.Echo "---" Next
该脚本通过 WMI 查询所有已安装的软件产品。它显示每个产品的名称、版本和供应商。请注意,在安装了大量应用程序的系统上,此查询可能很慢。
监控网络适配器
此示例展示了如何检索网络适配器信息。它查询 Win32_NetworkAdapterConfiguration 类。该脚本显示每个网络适配器的 IP 配置详细信息。
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colAdapters = objWMIService.InstancesOf("Win32_NetworkAdapterConfiguration") For Each objAdapter in colAdapters If Not IsNull(objAdapter.IPAddress) Then WScript.Echo "Description: " & objAdapter.Description WScript.Echo "IP Address: " & Join(objAdapter.IPAddress, ", ") WScript.Echo "Subnet Mask: " & Join(objAdapter.IPSubnet, ", ") WScript.Echo "---" End If Next
该脚本检索所有网络适配器配置。它进行筛选,仅显示分配了 IP 地址的适配器。Join 函数组合了数组值,以便更清晰地输出多个 IP 地址。
检查系统 BIOS 信息
最后一个示例演示了查询 BIOS 信息。它使用 Win32_BIOS 类检索系统 BIOS 详细信息。该脚本显示版本、制造商和发布日期。
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colBIOS = objWMIService.InstancesOf("Win32_BIOS") For Each objBIOS in colBIOS WScript.Echo "Manufacturer: " & objBIOS.Manufacturer WScript.Echo "Version: " & objBIOS.Version WScript.Echo "Release Date: " & objBIOS.ReleaseDate WScript.Echo "SMBIOS Version: " & objBIOS.SMBIOSBIOSVersion Next
该脚本从系统检索 BIOS 信息。它显示有关 BIOS 固件的关键详细信息。此示例展示了如何通过 WMI 访问底层系统信息。
来源
在本文中,我们探讨了 VBScript 中的 InstancesOf
方法,涵盖了它的用法和实际应用。从进程监控到硬件清单,这些示例展示了强大的系统管理功能。通过这些知识,您可以使用 WMI 创建强大的管理脚本。