VBScript Win32_Processor Class
last modified April 9, 2025
The Win32_Processor
class in VBScript is part of Windows Management
Instrumentation (WMI). It provides detailed information about the computer's CPU
and processor architecture. This class exposes numerous properties about system
processors. It's commonly used in system monitoring and inventory scripts.
Win32_Processor
can retrieve data like CPU name, clock speed, cache
size, and more. It works across all modern Windows versions through WMI. This
tutorial covers Win32_Processor
with practical examples to
demonstrate its usage.
Win32_Processor Class Overview
The Win32_Processor
class represents a processor on a Windows
system. It contains about 50 properties describing processor characteristics.
Access requires WMI connection through the winmgmts
moniker. The
class provides read-only information about installed processors.
Key properties include Name
, NumberOfCores
, and
MaxClockSpeed
. The class supports both single and multi-processor
systems. Understanding this class helps create robust system information scripts.
Basic CPU Information Retrieval
This example demonstrates retrieving basic CPU information using
Win32_Processor
. It shows how to connect to WMI and access common
processor properties. The script displays the CPU name, manufacturer, and clock
speed.
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
The script connects to WMI and queries all processor instances. It then loops through each processor (for multi-CPU systems) and displays key properties. The output includes the full processor name, manufacturer, and current speed.
Retrieving CPU Architecture Information
This example shows how to determine the processor architecture using
Win32_Processor
. It demonstrates accessing the
Architecture
property and interpreting its numeric value. The script
converts the architecture code to a human-readable description.
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
The script retrieves the numeric architecture value from WMI. It uses a
Select Case
statement to map this to a descriptive string. Common
values include 0 for x86 and 9 for x64 architectures. The output shows the
processor's instruction set architecture.
Checking CPU Cache Information
This example demonstrates retrieving CPU cache information using
Win32_Processor
. It shows how to access L2 and L3 cache sizes. The
script displays cache information in kilobytes for better readability.
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
The script queries the L2CacheSize
, L3CacheSize
, and
L2CacheSpeed
properties. These values represent the processor's
cache characteristics. Note that some properties may return 0 on certain CPU
models or if the information is unavailable.
Monitoring CPU Load
This example shows how to monitor current CPU load using
Win32_Processor
. It demonstrates accessing the
LoadPercentage
property. The script provides a simple CPU
utilization monitor.
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
The script retrieves the current CPU load percentage for each processor. It also
shows core and logical processor counts. The LoadPercentage
value
represents the current utilization across all cores. This is useful for system
monitoring scripts.
Checking CPU Power Management
This example demonstrates checking CPU power management capabilities using
Win32_Processor
. It shows how to access power-related properties
like current and maximum clock speeds. The script helps assess CPU power states.
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
The script displays current and maximum CPU clock speeds, showing potential
throttling. It checks if power management is supported by the processor. The
Status
property indicates the processor's operational state. This
information is valuable for power management scripts.
Source
Win32_Processor Class Documentation
In this article, we have explored the Win32_Processor
class in
VBScript, covering its usage and practical applications. From basic CPU
information to power management details, these examples demonstrate system
monitoring capabilities. With this knowledge, you can enhance your system
information scripts with detailed processor data.
Author
List all VBScript tutorials.