Check VMware HCL with PowerCLI (half-done, need assistance)

It’s on my to-do list for quite a long time: Create a Script that checks hardware against VMwares HCL. There are some problems that needs to be solved to automate the process. My main problems are matching the installed ESXi version to the release Level (eg. 5.5 U2, 6.0, 6.0 U1,…), integrating the HCL into a script and matching HCL to the physical hardware.

This is what I can do today with PowerCLI, basically by running “Get-VMHost | Check-HCL“:
I’m not sure if anyone is interested in automating HCL checks because I couldn’t find any scripts online. If you are interested, nice! I need assistance…

I need a larger pool of hardware information to know how hardware identifies itself. So if you want to support me, please run the following PowerCLI command and send me the output (Just Copy/Paste CSV file contents to my Contact Form, or send me an eMail. I will respond with the output of my script as shown above). If you don’t want to disclose your hostnames, just remove the “Name” part in the command, or replace the content with dummy-names.

Get-VMHost |select Name,Build,Manufacturer,Model,ProcessorType |Export-Csv hosts.csv -NoTypeInformation

If you are interested in how the script works, or the script/function itself, feel free to contact me. (It’s unfinished spaghetti code….)

Some additional features:


Display VMware HCL link (For further verification)


Display all supported ESXi versions for the hardware


  1. I like this and will help you. have loads of HP proliants and blades of various generations i can query for you. also some UCS

  2. Hi Florian,

    great effort!

    You wrote that you have difficulties matching the installed ESXi version to the release level. With “esxcli system version get” you will get the ESXi version and update level. This works since 5.0 at least.

    Do you plan to also query NICs and Storage Controllers against the “IO Devices” category? They could be easily identified and searched for using the PCI vendor/device/subvendor/subdevice IDs.

    – Andreas

    • Hi Andreas,
      Thanks for your comment. I also want to integrate IO Devices. VMware does something similar for VSAN, I need it for everything.

      I would like to see the release level in the API, like here. At least it’s posstible in PowerCLI with Get-Esxcli, but i dont like that command and its too language specific…

  3. Happy to help, cold be really interesting and save a lot of manual work ;-)

    will send you some info about Dell and some UCS servers

  4. Hi there!

    What did I wrong?)

    PowerCLI C:\> Get-VMHost

    Name ConnectionState PowerState NumCpu CpuUsageMhz CpuTotalMhz
    —- ————— ———- —— ———– ———– Connected PoweredOn 4 2762 13996

    PowerCLI C:\> Get-VMHost | Check-HCL
    Check-HCL : The term ‘Check-HCL’ is not recognized as the name of a cmdlet, fun
    ction, script file, or operable program. Check the spelling of the name, or if
    a path was included, verify that the path is correct and try again.
    At line:1 char:14
    + Get-VMHost | Check-HCL
    + ~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (Check-HCL:String) [], CommandNo
    + FullyQualifiedErrorId : CommandNotFoundException

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>