vbscript WMI queries


VBScript can query Windows Management Instrumentation (WMI) for various vital info related to local and remote PC . We can use WMI queries to perform various tasks such as extracting PC's name , getting screen resolution , getting info about user and username , extracting vital info about any process , modifying core system settings,etc .

Below are some examples which use WMI queries to carry out specific tasks .

Extracting Local PC's name

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colSettings = objWMIService.ExecQuery _("Select * from Win32_ComputerSystem")

For Each objComputer in colSettings
wscript.echo objComputer.Name

This code will echo PC's name in which it's executed .

Getting number of instances of any process

strComputer = "."
instances = 0
processName = "chrome.exe"

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcess = objWMIService.ExecQuery("Select * from Win32_Process")

For Each objProcess in colProcess
If objProcess.Name = processName Then instances = instances + 1

wscript.echo "Process - "&processName&" has "&instances&" instances running."

Getting Active Monitor's Screen Resolution

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_DesktopMonitor",,48)

For Each objItem in colItems
WScript.Echo "ScreenHeight: " & objItem.ScreenHeight
WScript.Echo "ScreenWidth: " & objItem.ScreenWidth