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
Download: io-devices-report.ps1 (Hosted at GitHub)
- Get PowerCLI 6.3 R1 or later
- Change the device scope (Line 13) to the desired value.
$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.
- 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.