sagar666
Enthusiast
Enthusiast

Get ESXI version using guest operating system

Hi,

I am trying to find the esxi version using guest operating system using Linux and windows.

I am trying vmware tools installation automatically using puppet. I will keep files in centralized http server and make them available to all the clients in this case all VMware guest operating system. We have to  install vmware tools based on ESXI version so before I am pulsing different version of vmware tools I want to make sure whether guest operating is running on ESXI 5, 5.1, 5.5, 6.0. If i able fetch esxi version using guest operating system then my job will be easy. Please help

0 Kudos
11 Replies
pradeepjigalur
Enthusiast
Enthusiast

ssh to the ESXi and run the following command:

vmware -vl

0 Kudos
RAJ_RAJ
Expert
Expert

Hi Try Below option

1. 

if you have Host Details on the vm properties you can get form below command

vmtoolsd.exe --cmd "info-get guestinfo.hypervisor.hostname

Else add the entry and try # from its advance properties

guestinfo.hypervisor.hostname = esxi hostname

vmtoolsd.exe "info-get guestinfo.hypervisor.hostname

Path of the VMtools

UNIX/Linux - /usr/bin/vmtoolsd

Windows - C:\Program Files\VMware\VMware Tools\vmtoolsd.exe

2.

Try from POwer CLI to get all ESXI host infomration using below script

Connect-VIServer $vCenter

$vmhosts = get-vmhost *

$vmhosts | Sort Name -Descending | % { $server = $_ |get-view; `

    $server.Config.Product | select `

    @{ Name = "Server Name"; Expression ={ $server.Name }}, `

    Name, Version, Build, FullName, ApiVersion }

3.

Connect ESXi through Putty and  use below command

vmware  -vvv

Or Download  RVtools  and access vcenter get the complete information

RAJESH RADHAKRISHNAN VCA -DCV/WM/Cloud,VCP 5 - DCV/DT/CLOUD, ,VCP6-DCV, EMCISA,EMCSA,MCTS,MCPS,BCFA https://ae.linkedin.com/in/rajesh-radhakrishnan-76269335 Mark my post as "helpful" or "correct" if I've helped resolve or answered your query!
0 Kudos
sagar666
Enthusiast
Enthusiast

Hi Raj & pradeepjigalur,

I want to pull ESXI version  info from guest operating system before installing vmware tools. Is this Possible?

0 Kudos
pradeepjigalur
Enthusiast
Enthusiast

this is straightforward just do ssh and run the command: vmware -vl

0 Kudos
sagar666
Enthusiast
Enthusiast

HI pradeepjigalur,

I want to pull this info from Guest operating system only not from ESXI host. The main intention for this is i will keep all version of vmware tools in centralized server like any nfs or http and make them available. So guest operating OS will find the ESXI version and download from centralized server and install. All this process is done automation and  For some times we wont have permission to login ESXI host.

Thanks,

0 Kudos
RAJ_RAJ
Expert
Expert

Am per my understanding it is not possible from GOS without tools .

RAJESH RADHAKRISHNAN VCA -DCV/WM/Cloud,VCP 5 - DCV/DT/CLOUD, ,VCP6-DCV, EMCISA,EMCSA,MCTS,MCPS,BCFA https://ae.linkedin.com/in/rajesh-radhakrishnan-76269335 Mark my post as "helpful" or "correct" if I've helped resolve or answered your query!
0 Kudos
kbogdanov
Contributor
Contributor

Hi!

For linux guest OS the solution is (found here - Determine VMWare ESX version from Linux as guest OS | Frits Hoogland Weblog 😞

#/bin/bash

case $( dmidecode | grep -A4 "BIOS Information" | grep Address | awk '{ print $2 }' ) in

"0xE8480" ) echo "ESX 2.5" ;;

"0xE7C70" ) echo "ESX 3.0" ;;

"0xE7910" ) echo "ESX 3.5" ;;

"0xE7910" ) echo "ESX 4"  ;;

"0xEA550" ) echo "ESX 4U1" ;;

"0xEA2E0" ) echo "ESX 4.1" ;;

"0xE72C0" ) echo "ESXi 5"  ;;

"0xEA0C0" ) echo "ESXi 5.1" ;;

"0xEA050" ) echo "ESXi 5.5" ;;

"0xEA580" ) echo "ESXi 6.5" ;;

* ) echo "Unknown version: "

dmidecode | grep -A4 "BIOS Information"

;;

esac

0 Kudos
seurat_atreides
Contributor
Contributor

Hi, I added the code for ESXi 6.7 U2:

#/bin/bash

case $( dmidecode | grep -A4 "BIOS Information" | grep Address | awk '{ print $2 }' ) in

   "0xE8480" ) echo "ESX 2.5" ;;

   "0xE7C70" ) echo "ESX 3.0" ;;

   "0xE7910" ) echo "ESX 3.5" ;;

   "0xEA6C0" ) echo "ESX 4" ;;

   "0xEA550" ) echo "ESX 4U1" ;;

   "0xEA2E0" ) echo "ESX 4.1" ;;

   "0xE72C0" ) echo "ESXi 5" ;;

   "0xEA0C0" ) echo "ESXi 5.1" ;;

   "0xEA050" ) echo "ESXi 5.5" ;;

   "0xE9A40" ) echo "ESXi 6" ;;

   "0xEA580" ) echo "ESXi 6.5" ;;

   "0xEA520" ) echo "ESXi 6.7" ;;

   "0xEA490" ) echo "ESXi 6.7U2" ;;

   *         ) echo "Unknown version: "

               dmidecode | grep -A4 "BIOS Information" ;;

esac

0 Kudos
jcallenrh
Contributor
Contributor

Has anyone determined what the Address is for vSphere 7?

I have 0xEA480 just wanted to make sure that is correct.

Thanks!

0 Kudos
peetz
Leadership
Leadership

I confirm, I also get the result 0xEA480 on ESXi 7.0.

- Andreas

Twitter: @VFrontDe, @ESXiPatches | https://esxi-patches.v-front.de | https://vibsdepot.v-front.de
0 Kudos
peetz
Leadership
Leadership

Greetings,

you can find out the ESXi host version and build by using the VMwareToolBoxCmd.exe CLI tool in Windows, resp. the vmware-toolbox-cmd command in Linux like this:

   VMwareToolboxCmd.exe stat raw text session

It will output something like

session = 2716688027286866142

uptime = 29957302559

version = VMware ESX 7.0.0 build-15843807

provider =

uuid.bios = 42 1a a2 f8 f8 1c 54 de-e9 7b c7 36 f1 ee 5d 9c

Instead of "text" you can also use "'json", "xml" or "yaml" to format the output in other ways.

And you can also use the CLI tools *without* installing them. E.g. on Windows it is sufficient to copy the VMwareToolBoxCmd.exe executable together with some DLLs (glib-2.0.dll, intl.dll, pcre.dll, vmtools.dll) into a directory (e.g. on a network share) and call it from there.

In Linux a similar approach should work.

- Andreas

Twitter: @VFrontDe, @ESXiPatches | https://esxi-patches.v-front.de | https://vibsdepot.v-front.de
0 Kudos