While working with VMware Tools, I needed to audit exactly which features/components were installed on a VM. VMware Tools isn’t just one package — it installs several sub-features like drivers, services, and utilities. I wanted a clean report showing each component and whether it was actually installed locally.
WMI/CIM has a class called Win32_SoftwareFeature that tracks individual features of MSI-based products. VMware Tools registers its sub-features there, so you can query it directly:
Get-WmiObject win32_softwarefeature | Where-Object {$_.ProductName -eq 'Vmware Tools'} | Select-Object name, installstate
Here is the list of number in the installstate and their meaning. Number 3 installstate represents Local means installed. More information can be found on https://learn.microsoft.com/en-us/previous-versions/windows/desktop/legacy/aa394458(v=vs.85)
| Value | Meaning |
|---|---|
| -6 |
Bad Configuration |
| -2 |
Invalid Argument |
| -1 |
Unknown Package |
| 1 |
Advertised |
| 2 |
Absent |
| 3 |
Local |
| 4 |
Source |
Useful Articles
Powershell Configure ILO5 using Restful API
Configure Dell iDrac9 Rest API with Powershell
Powershell Dell iDrac redfish Rest API basic authentication
Powershell Convert range of numbers into another list of numbers maintaining ratio
PowerShell slice array into groups of smaller arrays
Powershell web scrapping extract table from html
Powershell adding leading zeros to string or int
PowerShell convert string to base64 value
PowerShell Encode or Decode an WebURL
Create an interactive HTML report with PowerShell data

