VMware Cloud Community
Guv
Enthusiast
Enthusiast

Dell BIOS version of ESX Hosts.

We use esxi 4.1 and virtual centre 4.1, and they are running on Dell Poweredge servers.  To be precise they are running Dell Poweredge R815.  Is there a script we can run to get the BIOS version of these esx servers.   In virtual centre we have a hardware status tab which can show the bios version of the Dell server,instead of me going through each one, can i get a script to list the esx host and their bios version.

0 Kudos
6 Replies
RvdNieuwendijk
Leadership
Leadership

You can try:

Get-VMHost | Select-Object -Property name,@{N="BiosVersion";E={$_.ExtensionData.Hardware.Biosinfo.BiosVersion}}

Blog: https://rvdnieuwendijk.com/ | Twitter: @rvdnieuwendijk | Author of: https://www.packtpub.com/virtualization-and-cloud/learning-powercli-second-edition
0 Kudos
monderick
Enthusiast
Enthusiast

script i use for our Dell servers, extremely likely i got it from this forum but can't find the thread at the moment.

nicely formatted results and gives BIOS date as well.

$report = @()
Get-View -ViewType HostSystem | %{
     $row = "" |Select Name, "BIOS Version", "BIOS Date"
     $row.name = $_.name
     $biosTemp = ((($_.Runtime.HealthSystemRuntime.SystemHealthInfo.NumericSensorInfo | Where {$_.Name -like "*BIOS*"}).Name -split "BIOS ")[1] -split " ")
     $row."BIOS Version" = $biosTemp[0]
     $row."BIOS Date" = $biosTemp[1]
     $report += $row
}
$report | sort name | Format-Table -autosize
0 Kudos
Guv
Enthusiast
Enthusiast

Is it possible to add the type of server model such as what type of dell poweredge server like poweredge r815.

0 Kudos
RvdNieuwendijk
Leadership
Leadership

I added the hardware model to monderick's script and made some small improvements:

$report = @()
Get-View -ViewType HostSystem -Property Name,
  Hardware.SystemInfo.Model,
  Runtime.HealthSystemRuntime.SystemHealthInfo.NumericSensorInfo |
Foreach-Object {
     $row = "" |Select Name, Model, "BIOS Version", "BIOS Date"
     $row.name = $_.name
     $row.Model = $_.Hardware.SystemInfo.Model
     $biosTemp = ((($_.Runtime.HealthSystemRuntime.SystemHealthInfo.NumericSensorInfo |
       Where {$_.Name -like "*BIOS*"}).Name -split "BIOS ")[1] -split " ")
     $row."BIOS Version" = $biosTemp[0]
     $row."BIOS Date" = $biosTemp[1]
     $report += $row
}
$report | Sort-Object -Property Name | Format-Table -autosize

Blog: https://rvdnieuwendijk.com/ | Twitter: @rvdnieuwendijk | Author of: https://www.packtpub.com/virtualization-and-cloud/learning-powercli-second-edition
0 Kudos
monderick
Enthusiast
Enthusiast

thanks Robert, updated the script on my end with yours Smiley Happy

0 Kudos
markdjones82
Expert
Expert

FYI there is also a Dell Plugin into Vcenter if you haven't seen it which is nice to get info on your servers.  Although you do have to push a VIB and install a virtual machine.

http://www.twitter.com/markdjones82 | http://nutzandbolts.wordpress.com
0 Kudos