Two hosts can both report ESXi 8.0 Update 3 and be months apart in patch level. The build number is the only identifier that says precisely what is installed, which is why every compatibility matrix and security advisory is written in terms of builds.
This causes real operational problems. A version string is what people quote in tickets and what appears in inventory reports, and it is not specific enough to answer whether a host has a given fix. The build number is, and reading it correctly takes about a minute.
Table of contents
- Finding the build number
- What the number means
- Where you actually need it
- Keeping track of it operationally
- The broader point about version pinning
- How this fits the rest of the stack
- FAQ
Finding the build number
Several routes, depending on where you are standing.
# On the host over SSH - the direct answer
vmware -v
# VMware ESXi 8.0.3 build-24022510
# Fuller detail
vmware -vl
# The same thing via the CLI, with the update level
esxcli system version get
# From PowerCLI, across a whole cluster - the useful version
Get-VMHost | Select-Object Name, Version, Build | Sort-Object Build
That PowerCLI line is the one worth keeping. Sorting a cluster by build number immediately shows drift, and build drift within a cluster is a real problem - it produces inconsistent behaviour, complicates support cases, and means a fix you believe is deployed is only deployed to some hosts.
In the vSphere client, the build appears on the host summary page. In the direct host interface, it is on the main page after login.
What the number means
The build number is a monotonically increasing integer assigned at compile time. It carries no structure - it does not encode the version, the date, or the branch. Its only property is that a higher number was built later.
That property is genuinely useful, though. Comparing two build numbers tells you which is newer without any knowledge of the release naming, which is a better answer than trying to reason about whether Update 3g came before or after 8.0f.
The version and update strings, by contrast, are marketing-facing labels. A major or minor version marks a significant release. An Update indicates a substantial cumulative release. Letters and patch designations mark smaller releases in between. None of them are fine-grained enough to identify a specific security fix.
There is one complication worth knowing about: security-only patches carry different build numbers from full patches for the same release. An installation that took only the security rollup will report a different build from one that took the full patch, even though both are nominally at the same patch level. When comparing hosts, that is a legitimate difference rather than an error.
Where you actually need it
- Security advisories. Fixes are described as landing in a specific build. Answering whether a host is patched means comparing build numbers, not version strings.
- The compatibility matrix. Hardware, firmware, and driver support is qualified per build. A server or storage adapter certified for one build is not automatically certified for the next.
- Support cases. The build is the first thing asked for, because it identifies exactly what is running.
- Upgrade paths. Some upgrades require a minimum build as a stepping stone rather than allowing a direct jump.
- Cluster consistency. Hosts in one cluster should share a build. Drift causes behaviour differences that are difficult to diagnose.
The reference tables that map builds to releases are maintained by the vendor and by the community, and both are more useful than trying to remember. Bookmark one - you will need it every time an advisory lands.
The workflow that follows an advisory: read the fixed build number, run the PowerCLI line above across your estate, and compare. That is a two-minute answer to a question that otherwise turns into an afternoon of checking hosts individually.
Keeping track of it operationally
A few habits make build numbers a tool rather than a chore.
Record the build, not the version, in your inventory. Whatever system tracks your hosts should hold the build number. A CMDB entry saying ESXi 8.0 is not actionable.
Check cluster consistency after every patching window. The PowerCLI sort takes seconds and catches the host that failed to remediate, which otherwise sits at an old build until someone notices months later.
Record the build before an upgrade. If you need to roll back, knowing exactly what was there matters. ESXi keeps the previous image and allows booting into it from the boot menu, but only immediately after the upgrade - it is not a long-term safety net.
Check the compatibility matrix before patching, not after. Firmware and driver qualification is per build, and discovering a storage adapter is unsupported after the host is upgraded is a considerably worse position than discovering it before.
# Which patches are installed on a host
esxcli software vib list | head -20
# Profile currently in use
esxcli software profile get
The broader point about version pinning
The thing ESXi does explicitly is something every infrastructure layer does implicitly: the human-readable version is a label, and the precise artifact identifier is what actually determines behaviour.
The same pattern appears everywhere. A container image tagged with a major version resolves to different bytes depending on when it was pulled; the digest is the real identifier. A dependency range resolves differently over time; the lockfile is the real identifier. A distribution release name covers years of package updates; the package version is the real identifier.
In each case the friendly label is convenient for conversation and useless for reproducibility, and the specific identifier is the opposite. Teams that get bitten by this usually got bitten because they wrote the friendly label down and assumed it meant something precise.
# The same discipline, in a container build
FROM node:20 # drifts
FROM node:20.11.1-alpine3.19@sha256:... # pinned
The practical rule that generalises: whenever you record what is running - in a ticket, a runbook, an inventory, or a postmortem - record the precise identifier. It costs nothing at the time and is the difference between answering a question in two minutes and reconstructing it from memory.
How this fits the rest of the stack
The habit that makes build numbers useful is the same one that makes any deployment traceable: know exactly which artifact is running, and be able to go back to the previous one. On RunxBuild every deploy keeps its build log and runtime logs, and rollback to the previous version is a button rather than a rebuild. The RunxBuild hosting calculator shows the service, its managed database, and the bandwidth as separate line items before you commit to any of it.
Useful related references:
- How Long Does It Take to Build a Website? An Honest Set of Numbers
- What It Costs to Build an App: The Numbers Nobody Puts in the Quote
- Quick CPU: How to Check the CPU and What the Numbers Mean
- Builds on RunxBuild
FAQ
How do I find my ESXi build number?
Run the VMware version command over SSH, or use the ESXi CLI system version command for the update level as well. In the vSphere client it is on the host summary page. Across a cluster, PowerCLI can select name, version, and build for every host at once.
What is the difference between an ESXi version and a build number?
The version is a human-readable label such as 8.0 Update 3, which covers many patch releases. The build number is a unique integer assigned at compile time that identifies exactly what is installed. Security advisories and compatibility matrices are written in terms of builds.
Do higher ESXi build numbers always mean newer?
Yes - build numbers increase monotonically, so a higher number was compiled later. That makes them a reliable way to compare two hosts without knowing anything about the release naming scheme.
Why do two hosts on the same ESXi update have different builds?
Most often because one took the full patch and the other took the security-only rollup, which carry different build numbers for the same nominal release. It can also mean one host failed to remediate during a patching window, which is worth checking.
Why do build numbers matter for compatibility?
Hardware, firmware, and driver support is qualified per build rather than per version. A storage adapter or server model certified for one build is not automatically certified for the next, so the compatibility matrix should be checked before patching rather than after.