Check your VSAN disk controllers on VCG with PowerCLI

December 14, 2016

An easy way of checking your hosts compatibility against vSAN HCL as per VMware.

  • Connect to vCenter

  • Download latest VSAN HCL details (json file)

  • Compare controllers of each host against the VSAN HCL

  • Report the state of your infra

Below script is also available on VMware Developer Center as well –


Connect-VIServer myvcenter -user Administrator -password MyPass23


Function Get-CompatibleVSANController {

    if (-Not $vSANHCL) {

        $vSANHCL = Invoke-WebRequest -Uri | ConvertFrom-Json





$HBAs = get-vmhost | Get-VMHostPciDevice | where { $_.DeviceClass -eq "MassStorageController" }


Foreach ($HBA in $HBAs) {

    $HBAFound = $false

    Write-Host "Looking for $($ from host $($HBA.VMhost)"

    Foreach ($entry in Get-CompatibleVSANController) {

        $vid = [String]::Format("{0:x}", $HBA.VendorId)

                        $did = [String]::Format("{0:x}", $HBA.DeviceId)

                        $svid = [String]::Format("{0:x}", $HBA.SubVendorId)

        $ssid = [String]::Format("{0:x}", $HBA.SubDeviceId)

        If (($vid -eq $entry.vid) -and ($did -eq $entry.did) -and ($svid -eq $entry.svid) -and ($ssid -eq $entry.ssid) ) {

            Write-Host " HBA in $($HBA.VMHost) is $($HBA.Name) which can be found in the HCL as $($Entry.vendor) - $($Entry.Model) at the following URL: `n $($entry.vcglink)" -ForegroundColor Green

            $HBAFound = $true



    If (-Not $HBAFound){

        Write-Host " $($HBA.Name) in $($HBA.VMHost) is not found!" -ForegroundColor Red




If you run it the output will look like this:






Share on Facebook
Share on Twitter
Please reload

Featured Posts

I'm busy working on my blog posts. Watch this space!

Please reload

Recent Posts
Please reload

Please reload

Search By Tags
Please reload

Follow Us
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square

© 2019 VM-Xpress