VMware HCL Check with PowerCLI (Proof of Concept)

Announced in my VMware HCL in JSON Format post a few days ago, here is now a working version of my script. The script does not create a fancy report at the moment, it just writes some output and the result. It’s only intended to show that it actually works. Here is an example:


There are still some problems, but especially with HP, Dell or IBM Systems, it produces good results.

First of all, what is the problem?
VMwares HCL is a web-based application which makes automated checks difficult. To workaround this I’ve transformed the full HCL into a JSON file which is available here. This file does NOT contain live data. At the moment, I don’t really know how large the offset should be to produce valid results. So keep in mind, there is always a little skew but I keep the JSON up to date.

What does the Script do?

  1. Downloads my JSON HCL and JSON ESXi Version Database
  2. Gathers Information about ESXi Hosts (Name, Version, Build and Hardware Info)
  3. Identifies the Release level, required for HCL Checks (eg. ESXi 6.0 U1 or 6.0 U2). The release level is identified with the build number from my version database.
  4. Searches the JSON file for the Hardware Model string
  5. Searches corresponding CPU Series
  6. Displays if the installed version is supported (green) or unsupported (red)
  7. Displays ESXi Versions that are supported (Is an upgrade supported?)
  8. Displays a Link to the official HCL for further verification(if required)

Currently, it works great with HP and Dell Servers. Their bios hardware model string matches 100% with the HCL entry, making it very easy:

IBM makes it a little bit more difficult by sometimes writing “IBM” to their model or appending the product ID. I’ve tried to workaround this by creating wildcard matches. Works with most systems now:

Cisco UCS does not work at the moment. I haven’t figured out how their naming works…
[Update 2016-06-11] Cisco UCS are now implemented to the script.

If the build number can not be identified, and this is a public available version, please tell me. Of course, any beta versions are not listed. If it’s a public available version, it’s missing in my database.

Also I’ve only implemented CPU matching for Intel Xenon CPUs. AMD, or some old Intel CPUs might not be matched correctly to the CPU Series. If that happens, the script displays all supported CPU Series (which is typically 2-6 per server type). Also, I’ve removed any ESXi Hosts <5.0 from the output (4.x is EOL anyhow).

The script is available at Github.



  1. Hot VMware Topics - May 2016 - pingback on June 8, 2016 at 4:38 pm
  2. nice post.. I like the idea.. But how did you get the original HCL to Json. Im thinking of other uses for converting the website to json.

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Trackbacks and Pingbacks: