For a healthy vSphere virtualization infrastructure and to receive support from VMware it is important to verify that IO devices are listed in VMwares Compatibility Guide/Hardware Compatibility List (HCL) with their correct driver and firmware version. Gathering firmware details and comparing them to the HCL is very time-consuming. I made a small script that automatically gathers the following information:

IO Devices (NICs, HBAs and RAID Controllers)

Driver Version

Firmware Version

Official HCL Link

Usage:

Get PowerCLI 6.3 R1 or later Change the device scope (Line 13) to the desired value.



Example:

$device = Get-VMHost esx01.virten.lab - Check a single Host

$device = Get-Cluster NUCluster | Get-VMHost - Checks all hosts in a cluster

$device = Get-VMHost - Checks all hosts in the vCenter Connect to a vCenter Server PS> Connect-VIServer vc.virten.lab Optional: Change the output format (Line 91-108). CSV and HTML output is active by default. Run the script Verify the output with the provided links.

Additional Information

The runtime is about 20-40 seconds per host.

The script downloads my JSON-based IOHCL (1.4 MB).

The "Supported" attribute only states that is device has been found in the HCL. You still have to check ESXi version and Firmware/Driver version.

The script uses Get-EsxCli -V2 which requires at least PowerCLI 6.3 R1

QLogic and Emulex firmware can only be identified with SSH as explained here. If you know a workaround, please comment.

If you found any issues, feel free to comment and I will try to provide a fix.

Example Output