VBScript InstancesOf Method
last modified April 9, 2025
The InstancesOf
method in VBScript is part of the Windows Management
Instrumentation (WMI) interface. It queries WMI for all instances of a specified
class. This method returns a collection of objects matching the query criteria.
It's commonly used for system administration and monitoring tasks.
InstancesOf
provides access to hardware, software, and system
information. It enables powerful system management capabilities through WMI.
This tutorial covers InstancesOf
with practical examples to
demonstrate its usage in various scenarios.
InstancesOf Method Overview
The InstancesOf
method is called on a WMI service object. It takes
a single parameter: the WMI class name to query. The method returns a collection
of SWbemObject instances representing the queried objects.
Key features include access to system information and hardware details. It
requires proper WMI permissions to execute successfully. InstancesOf
works with both local and remote systems when properly configured.
Basic Process Enumeration
This example demonstrates querying running processes using InstancesOf
.
It shows how to retrieve basic process information. The script connects to WMI
and queries the Win32_Process class.
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
The script connects to the local WMI service and queries all processes. It then iterates through the collection, displaying each process name and ID. This is a foundational example of WMI data retrieval.
Querying Disk Drives
This example shows how to retrieve information about physical disk drives. It demonstrates querying the Win32_DiskDrive class. The script displays basic drive properties for each installed disk.
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
The script connects to WMI and queries disk drive information. It displays the model, size (converted to GB), and interface type for each drive. This example shows practical hardware information retrieval.
Checking Installed Software
This example demonstrates querying installed software using the Win32_Product class. It shows how to retrieve software names and versions. The script provides a basic software inventory capability.
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
The script queries all installed software products through WMI. It displays the name, version, and vendor for each product. Note that this query might be slow on systems with many installed applications.
Monitoring Network Adapters
This example shows how to retrieve network adapter information. It queries the Win32_NetworkAdapterConfiguration class. The script displays IP configuration details for each network adapter.
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
The script retrieves all network adapter configurations. It filters to show only adapters with IP addresses assigned. The Join function combines array values for cleaner output of multiple IP addresses.
Checking System BIOS Information
This final example demonstrates querying BIOS information. It uses the Win32_BIOS class to retrieve system BIOS details. The script displays version, manufacturer, and release date.
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
The script retrieves BIOS information from the system. It displays key details about the BIOS firmware. This example shows how to access low-level system information through WMI.
Source
In this article, we have explored the InstancesOf
method in VBScript,
covering its usage and practical applications. From process monitoring to hardware
inventory, these examples demonstrate powerful system management capabilities.
With this knowledge, you can create robust administrative scripts using WMI.
Author
List all VBScript tutorials.