ZetCode

VBScript Win32_Processor 类

最后修改于 2025 年 4 月 9 日

VBScript 中的 Win32_Processor 类是 Windows Management Instrumentation (WMI) 的一部分。它提供有关计算机 CPU 和处理器架构的详细信息。此类公开了有关系统处理器的众多属性。它通常用于系统监控和清单脚本。

Win32_Processor 可以检索 CPU 名称、时钟速度、缓存大小等数据。它通过 WMI 在所有现代 Windows 版本中都可用。本教程将介绍 Win32_Processor,并提供实际示例来演示其用法。

Win32_Processor 类概述

Win32_Processor 类代表 Windows 系统上的处理器。它包含约 50 个属性来描述处理器特性。访问需要通过 winmgmts 标识符连接到 WMI。该类提供有关已安装处理器的只读信息。

关键属性包括 NameNumberOfCoresMaxClockSpeed。该类同时支持单处理器和多处理器系统。理解此类有助于创建强大的系统信息脚本。

基本 CPU 信息检索

此示例演示了如何使用 Win32_Processor 检索基本 CPU 信息。它展示了如何连接到 WMI 并访问常用的处理器属性。脚本会显示 CPU 名称、制造商和时钟速度。

basic_cpu_info.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colProcessors = objWMIService.ExecQuery("Select * from Win32_Processor")

For Each objProcessor in colProcessors
    WScript.Echo "Processor Name: " & objProcessor.Name
    WScript.Echo "Manufacturer: " & objProcessor.Manufacturer
    WScript.Echo "Current Clock Speed: " & objProcessor.CurrentClockSpeed & " MHz"
Next

脚本连接到 WMI 并查询所有处理器实例。然后,它会遍历每个处理器(用于多 CPU 系统)并显示关键属性。输出包括完整的处理器名称、制造商和当前速度。

检索 CPU 架构信息

此示例展示了如何使用 Win32_Processor 确定处理器架构。它演示了如何访问 Architecture 属性并解释其数值。脚本将架构代码转换为人类可读的描述。

cpu_architecture.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colProcessors = objWMIService.ExecQuery("Select * from Win32_Processor")

For Each objProcessor in colProcessors
    Select Case objProcessor.Architecture
        Case 0 arch = "x86"
        Case 1 arch = "MIPS"
        Case 2 arch = "Alpha"
        Case 3 arch = "PowerPC"
        Case 5 arch = "ARM"
        Case 6 arch = "ia64"
        Case 9 arch = "x64"
        Case Else arch = "Unknown"
    End Select
    
    WScript.Echo "Processor Architecture: " & arch
Next

脚本从 WMI 检索数值架构值。它使用 Select Case 语句将其映射到描述性字符串。常见值包括 x86 的 0 和 x64 架构的 9。输出显示处理器的指令集架构。

检查 CPU 缓存信息

此示例演示了如何使用 Win32_Processor 检索 CPU 缓存信息。它展示了如何访问 L2 和 L3 缓存大小。脚本以千字节为单位显示缓存信息,以提高可读性。

cpu_cache_info.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colProcessors = objWMIService.ExecQuery("Select * from Win32_Processor")

For Each objProcessor in colProcessors
    WScript.Echo "L2 Cache Size: " & objProcessor.L2CacheSize & " KB"
    WScript.Echo "L3 Cache Size: " & objProcessor.L3CacheSize & " KB"
    WScript.Echo "L2 Cache Speed: " & objProcessor.L2CacheSpeed & " MHz"
Next

脚本查询 L2CacheSizeL3CacheSizeL2CacheSpeed 属性。这些值代表处理器的缓存特性。请注意,某些属性在特定 CPU 型号上可能返回 0,或者信息不可用。

监控 CPU 负载

此示例展示了如何使用 Win32_Processor 监控当前 CPU 负载。它演示了如何访问 LoadPercentage 属性。脚本提供了一个简单的 CPU 利用率监视器。

cpu_load_monitor.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colProcessors = objWMIService.ExecQuery("Select * from Win32_Processor")

For Each objProcessor in colProcessors
    WScript.Echo "CPU Load: " & objProcessor.LoadPercentage & "%"
    WScript.Echo "Number of Cores: " & objProcessor.NumberOfCores
    WScript.Echo "Number of Logical Processors: " & objProcessor.NumberOfLogicalProcessors
Next

脚本检索每个处理器的当前 CPU 负载百分比。它还显示了核心和逻辑处理器的数量。LoadPercentage 值表示所有核心的总当前利用率。这对于系统监控脚本很有用。

检查 CPU 功耗管理

此示例演示了如何使用 Win32_Processor 检查 CPU 功耗管理功能。它展示了如何访问当前和最大时钟速度等功耗相关属性。该脚本有助于评估 CPU 功耗状态。

cpu_power_info.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colProcessors = objWMIService.ExecQuery("Select * from Win32_Processor")

For Each objProcessor in colProcessors
    WScript.Echo "Current Clock Speed: " & objProcessor.CurrentClockSpeed & " MHz"
    WScript.Echo "Max Clock Speed: " & objProcessor.MaxClockSpeed & " MHz"
    WScript.Echo "Power Management Supported: " & objProcessor.PowerManagementSupported
    WScript.Echo "CPU Status: " & objProcessor.Status
Next

脚本显示当前和最大的 CPU 时钟速度,揭示潜在的降频。它检查处理器是否支持功耗管理。Status 属性指示处理器的运行状态。此信息对于功耗管理脚本很有价值。

来源

Win32_Processor 类文档

在本文中,我们探讨了 VBScript 中的 Win32_Processor 类,涵盖了其用法和实际应用。从基本 CPU 信息到功耗管理细节,这些示例展示了系统监控功能。通过这些知识,您可以增强您的系统信息脚本,使其包含详细的处理器数据。

作者

我叫 Jan Bodnar,是一位充满热情的程序员,拥有多年的编程经验。我从 2007 年开始撰写编程文章。到目前为止,我已撰写了 1400 多篇文章和 8 本电子书。我在教学编程方面拥有八年以上的经验。

列出所有 VBScript 教程