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:
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
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.
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...
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
What did I wrong?)
PowerCLI C:\> Get-VMHost
Name ConnectionState PowerState NumCpu CpuUsageMhz CpuTotalMhz
---- --------------- ---------- ------ ----------- -----------
10.0.1.101 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
Nothing. Check-HCL is the Cmdlet i am currently writing. It's not an official Cmdlet.
Ah.. :D Ooookay, didn't noticed it. Sent you my output.
News about Check-HCL?
Thanks a lot!