Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

WMI Hardware Monitors

This set of monitors performs status checks of typical hardware components and peripheral devices. Template contains "WMI Query" and "Script or Program" monitor types (thus requiring Professional 500 or higher license).

Monitors list

The following monitors are included:
  • Hardware: CPU
  • Hardware: Disk drive
  • Hardware: Motherboard
  • Hardware: Network adapter
  • Hardware: RAM chip
  • Hardware: Thermal sensor
  • Peripheral: Desktop monitor
  • Peripheral: Printer
  • Peripheral: Battery/UPS charge


  • Download and unpack the archive
  • Place *.vbs files into C:\Scripts (or any other directory of your choice)
  • Import the XML template file (from "Tools > Templates")
  • Assign the template to host(s) and adjust monitors settings as required

Monitors settings

Some monitors should work right after adding the template; others should be adjusted first (WMI calls use devices identifiers, which generally differ from system to system).

Both WMI queries and wmic command-line utility can be used to find the device ID to monitor. To run WMI queries, open PowerShell window (right-click, "Run as Administrator") and type sequence like
$WQL = "SELECT * FROM Win32_Battery"
$WMI = Get-WMIObject -Namespace "root\cimv2" -Query $WQL
The last statement only displays the result of the query.

Hardware: CPU

For single-CPU systems, no additional settings required. For multiple-CPU systems, clone the monitor for every CPU you need to monitor; use the below PowerShell commands to see the list of CPUs:
$WQL = "Select * FROM Win32_Processor"
$WMI = Get-WMIObject -Namespace "root\cimv2" -Query $WQL
Hardware: Disk drive

By default, monitors physical drive 0 (usually, that corresponds to logical disk C:). If multiple drives should be monitored, use the below PowerShell commands to get the list of available drives:
$WQL = "SELECT * FROM Win32_DiskDrive"
$WMI = Get-WMIObject -Namespace "root\cimv2" -Query $WQL
Important: when specifying a device ID in monitor definition, make sure you type every backslash twice. I.e., if physical device ID is "\\.\PHYSICALDRIVE0", enter "\\\\.\\PHYSICALDRIVE0" in monitor definition (as first parameter of the script).

Hardware: Motherboard

Requires no customization.

Hardware: Network adapter

Specify numeric device ID before starting the monitor. To see available network adapters along with their IDs, open run privileged cmd.exe (right click, "Run as Administrator") and type the command

wmic nic list brief /format:list

Hardware: RAM chip

Checks hardware status of RAM module installed. Requires customization; before you run the monitor, use the below PowerShell commands to see the list of RAM chip IDs:
$WQL = "SELECT * FROM Win32_PhysicalMemory"
$WMI = Get-WMIObject -Namespace "root\cimv2" -Query $WQL
Clone monitor and adjust device ID to monitor another chip.

Hardware: Thermal zone sensor

Thermal zone sensors are motherboard-supported hardware sensors reporting temperature of miscellaneous motherboard parts (such as CPU temperature). To get the device ID to monitor, use the below PowerShell commands:
$WQL = "SELECT * FROM MSAcpi_ThermalZoneTemperature"
$WMI = Get-WMIObject -Namespace "root\wmi" -Query $WQL
Important: when specifying a device ID in monitor definition, make sure you type every backslash twice.

Peripheral: Desktop monitor

Default definition checks the first monitor (display) in the system. If you have several displays attached, clone the monitor and adjust the script first parameter, to query the status of different display. To get the list of known displays, use the below PowerShell commands:
$WQL = "SELECT * FROM Win32_DesktopMonitor"
$WMI = Get-WMIObject -Namespace "root\cimv2" -Query $WQL
Peripheral: Printer

By default, attempts to monitor "Microsoft print to PDF" software printer status. To get the list of known printers, use the below elevated cmd.exe command to get printer names:

wmic printer list brief /format:list

Peripheral: Battery/UPS remaining charge

Requires no additional changes.

Remaining comments

1. By default, $HostName template variable is used in monitors definition, to connect to the corresponding host. You might need to change that to $HostDNS or $HostIP, if your host name differs from its DNS name or IP address.

2. Please find more information on the WMI calls mentioned in this template, in the below reference:

List of Windows Scripts

3. Note: if you monitor Windows-running virtual machine, certain hardware can't be monitored (for example, motherboard monitors might not work).

4. Default *.vbs location is C:\Scripts. If you unpack the VBScript files supplied into another directory, change that in monitors' definitions.
Tagged: 10.1K Downloaded: 69076 times
Sign In or Register to comment.