I have the below script to get HBAs & NiCs details, unfortunately, the cluster name is blank, and not sure why
$VMHosts = Get-VMHost
$Report = @()
foreach ($ESXHost in $VMHosts) {
$esxcli = Get-EsxCli -VMHost $ESXHost -V2
$nicfirmware = $esxcli.network.nic.list.Invoke()
$fcfirmware = $esxcli.storage.san.fc.list.Invoke()
$driversoft = $esxcli.software.vib.list.Invoke()
foreach ($nicfirmwareselect in $nicfirmware) {
$NetworDescription = $nicfirmwareselect.Description
$NetworDriver = $driversoft | Where-Object { $_.name -eq ($nicfirmwareselect.Driver) }
$NetworkName = $nicfirmwareselect.Name
$NetworkFirmware = $esxcli.network.nic.get.Invoke(@{nicname=$nicfirmwareselect.Name}).DriverInfo.FirmwareVersion
$ids = $esxcli.hardware.pci.list.Invoke() | Where-Object{$_.VMKernelName -eq $NetworkName}
$Report += "" |
Select-Object @{N = "Cluster"; E = {Get-Cluster $Clustername}},
@{N = "Hostname"; E = { $ESXHost.Name } },
@{N = "Hardware-Model"; E = { $ESXHost.Model } },
@{N = "device"; E = { $NetworkName } },
@{N = "driver"; E = { $NetworDriver.Version } },
@{N = "firmware"; E = { $NetworkFirmware } },
@{N = "description"; E = { $NetworDescription } },
@{N='VendorID [VID]';E={"{0:x}" -f [int]$ids.VendorID}},
@{N='DeviceID [DID]';E={"{0:x}" -f [int]$ids.DeviceID}},
@{N='SubVendorID [SVID]';E={"{0:x}" -f [int]$ids.SubVendorID}},
@{N='SubDeviceId [SDID]';E={"{0:x}" -f [int]$ids.SubDeviceID}}
}
foreach ($fcfirmwareselect in $fcfirmware) {
$fcDescription = $fcfirmwareselect.ModelDescription
$fcDriver = $driversoft | Where-Object { $_.name -eq ($fcfirmwareselect.DriverName) }
$fcName = $fcfirmwareselect.Adapter
$fcFirmware = $fcfirmwareselect.FirmwareVersion
$ids = $esxcli.hardware.pci.list.Invoke() | Where-Object{$_.VMKernelName -eq $fcName}
$Report += "" |
Select-Object @{N = "Cluster"; E = {Get-Cluster $Clustername}},
@{N = "Hostname"; E = { $ESXHost.Name } },
@{N = "Hardware-Model"; E = { $ESXHost.Model } },
@{N = "device"; E = { $fcName } },
@{N = "driver"; E = { $fcDriver.Version } },
@{N = "firmware"; E = { $fcFirmware } },
@{N = "description"; E = { $fcDescription } },
@{N='VendorID [VID]';E={"{0:x}" -f [int]$ids.VendorID}},
@{N='DeviceID [DID]';E={"{0:x}" -f [int]$ids.DeviceID}},
@{N='SubVendorID [SVID]';E={"{0:x}" -f [int]$ids.SubVendorID}},
@{N='SubDeviceId [SDID]';E={"{0:x}" -f [int]$ids.SubDeviceID}}
}
}
$Report | Export-Csv -Path '.\ESXi_HBAs_&_NICs-details.csv' -UseCulture -NoTypeInformation