Windows Management Instrumentation (WMI) has long been a core management feature in Windows. It offers amazing breadth, wide reach, and ubiquitous remoting.
What WMI lacked in the past, though, was a good way to get to it. Graphically, the wbemtest.exe utility lets you experiment with WMI, its namespaces, and classes. It truly is a testing tool, though, as its complex user interface makes it impractical to use for most scenarios (see Figure 28-1).
Figure 28-1. Using wbemtest.exe to retrieve a Win32_Process
A more user-friendly alternative is the wmic.exe command-line tool. The WMIC tool lets you interactively query WMI—but more importantly, automate its behavior. As with PowerShell, results within WMIC retain a great deal of their structured information and let you write fairly detailed queries:
PS > WMIC logicaldisk WHERE drivetype=3 ` GET "name,freespace,SystemName,FileSystem,Size" FileSystem FreeSpace Name Size SystemName NTFS 10587656192 C: 34357637120 LEEHOLMES1C23
The language is limited, however, and all of the data’s structure is lost once WMIC converts its output to text.
By far, the most popular user interface for WMI has been VBScript, the administrator’s traditional scripting language. VBScript offers much richer language facilities than WMIC and retains WMI’s structured data for the entire duration of your script.