Hello All,
Greetings!
from this community i got below script which is used by "Guru" wherever any firmware upgrade is planned for HP servers..
i have been asked to do such task and am in the process of gathering the information from vcenter for all the HP servers , below script is working perfect. but it is missing ilo ip details. someone help on this part.
$strHostsClusterName = "Cluster Name" <want it to run all the hosts in the Vcenter>
Get-View -ViewType HostSystem -Property Name, Runtime.HealthSystemRuntime.SystemHealthInfo.NumericSensorInfo -SearchRoot (Get-View -ViewType ClusterComputeResource -Property Name -Filter @{"Name" = "^$([RegEx]::escape($strHostsClusterName))$"}).MoRef | %{
$arrNumericSensorInfo = @($_.Runtime.HealthSystemRuntime.SystemHealthInfo.NumericSensorInfo)
# HostNumericSensorInfo for BIOS, iLO, array controller
$nsiBIOS = $arrNumericSensorInfo | ? {$_.Name -like "*System BIOS*"}
$nsiArrayCtrlr = $arrNumericSensorInfo | ? {$_.Name -like "HP Smart Array Controller*"}
$nsiILO = $arrNumericSensorInfo | ? {$_.Name -like "Hewlett-Packard BMC Firmware*"}
$esxName = $_.Name
$esxcli = Get-EsxCli -VMHost $_.Name
$esxcli.network.nic.list() | %{
$esxcli.network.nic.get($_.Name) | %{
$props = [ordered]@{
VMHost = $esxName
"SystemBIOS" = $nsiBIOS.name
"HPSmartArray" = $nsiArrayCtrlr.Name
"iLOFirmware" = $nsiILO.Name
"nx_nic device" = $_.Name
"nx_nic driver" = $_.DriverInfo.Driver
"nx_nic driver version" = $_.DriverInfo.Version
"nx_nic firmware version" = $_.DriverInfo.FirmwareVersion
} ## end new-object
New-Object PSObject -Property $props
}
}
} | Export-Csv C:\inventory.csv