Ever wanted to spruce up that default login screen on your ESXi host or have some fun with your DCUI? Then you’re in the right place! In this post, I’ll walk through using the Annotations.WelcomeMessage advanced setting to display a custom welcome message on your ESXi host. Best of all, I’ll share a neat PowerShell function to make it easy.
Why Customize the Welcome Message?
- Personalization: Display a personal greeting, instructions, or a quick reminder for anyone logging into the ESXi console.
- Useful Info: Share contact details or support info in case someone needs to know who to call if something breaks.
- Fun Factor: It’s always nice to see something other than “Welcome to VMware ESXi” from time to time at least in homelab.
- Security: Display security/legal warning.
The Advanced Setting: Annotations.WelcomeMessage
Annotations.WelcomeMessage is an advanced ESXi host parameter. It’s where you store the text you want displayed in DCUI on the default console screen (replacing some default text, similar to screenshot below).
(virtual ESXi)
PowerShell Script: Set-WelcomeMessage Function
Here is the star of the show—my simple PowerShell function that taps into VMware’s PowerCLI to set Annotations.WelcomeMessage on your ESXi host. It even shows you the old message before setting the new one.
You can download it from my GitHub repo in ESXi folder from my GitHub repo: https://github.com/musil/vSphere_scripts or use this direct link to a script file: https://github.com/musil/vSphere_scripts/blob/main/ESXi/set_welcome_message.ps1
Function Set-WelcomeMessage {
<#
.SYNOPSIS
This function retrieves the vCenter version and build number.
Based on https://knowledge.broadcom.com/external/article/315410/
.NOTES
File Name : set_welcome_message.ps1
Author : Stanislav Musil
Prerequisite : PowerShell
Website : https://vpxd.dc5.cz/index.php/category/blog/
X (Twitter) : https://www.x.com/stmusil
.DESCRIPTION
The script is a function that takes a single parameter, the vCenter server name. Retrieves the version and build number.
To use the function, you can dot-source the script and then call the function.
Windows: . .\set_welcome_message.ps1
Mac/Linux: . ./set_welcome_message.ps1
.EXAMPLE
Set-WelcomeMessage -Hostname "ESXi.example.com" -WelcomeMessage "Welcome to {{hostname}"
#>
param (
[string]$HostName,
[string]$WelcomeMessage
)
# Ensure PowerCLI module is imported
if (-not (Get-Module -Name VMware.VimAutomation.Core -ErrorAction SilentlyContinue)) {
Import-Module VMware.VimAutomation.Core
}`
# Define the target host and the parameter values
$ESXihost = Get-VMHost -Name $HostName
$paramName = "Annotations.WelcomeMessage"
$current = Get-AdvancedSetting -Entity $ESXihost -Name $paramName
Write-Host "Current Weclome message:" $current.Value
# Set the advanced parameter
Get-AdvancedSetting -Entity $ESXihost -Name $paramName | Set-AdvancedSetting -Value $WelcomeMessage -Confirm:$false
# Verify the change
$updatedSetting = Get-AdvancedSetting -Entity $ESXihost -Name $paramName
Write-Output "New $paramName value on $ESXihost : $($updatedSetting.Value)"
}
How to Run It
1. Dot-source the script (so the function is recognized):
- On Windows:
. .\set_welcome_message.ps1
- On Mac/Linux:
. ./set_welcome_message.ps1
2. Execute the function:
Set-WelcomeMessage -Hostname "ESXi.example.com" -WelcomeMessage "Welcome to my ESXi host!"
3. That’s it! Now when you check the DCUI over iDRAC/IPMI/iLO etc.. or on directly on console screen, you’ll see your brand-new custom text.
Change it back to default
just set empty parameter 🙂
Set-WelcomeMessage -Hostname "ESXi.example.com" -WelcomeMessage ""
Final Thoughts
Customizing your ESXi’s welcome message is quick, easy, and surprisingly fun. Whether you’re adding a helpful notice or just a silly greeting, a personal touch goes a long way. Give it a try, and see if your team notices!
Happy customizing!
Manual way
https://knowledge.broadcom.com/external/article/315410
Advanced Examples
To get much awesome welcome message you need to use much complicated formating tags.
Welcome DCUI screen from my homelab:
My Homelab Welcome Message
To make it more easy I just “save” all the parameters of the welcome message into the variable $a.
$a="
{align:left}{bgcolor:black}{color:white} {esxproduct} (VMKernel Release {esxversion})
{bgcolor:black}{align:left}
{align:left}{bgcolor:black}{color:white} DC5 - Homelab
{bgcolor:black}{align:left}
{align:left}{bgcolor:black}{color:white} Memory: {memory}
{bgcolor:black}{align:left}
{align:left}{bgcolor:black}{color:white}NOTE:
{align:left}{bgcolor:black}{color:white} if you need help contact support@homelab
{bgcolor:black}{align:left}
{bgcolor:black}{align:left}
{bgcolor:black}{align:left}
{bgcolor:black}{align:left}
{bgcolor:black}{align:left}
{bgcolor:black}{align:left}
{bgcolor:black}{align:left}
{bgcolor:black}{align:left}
{bgcolor:black}{align:left}
{bgcolor:black}{align:left}
{bgcolor:black}{align:left}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black} To manage this host, go to:
{bgcolor:yellow}{color:black} http://{ip}
{bgcolor:yellow}{color:black} http://{hostname}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{bgcolor:yellow}{color:black}
{align:left}{bgcolor:black} {color:red} <F2> Customize System/View Logs <F12> Shut Down/Restart {/align}
"
And then just run the same command and instead of welcome message I used the $a variable
Set-WelcomeMessage -Hostname "fs-vsan-05.int.dc5.cz" -WelcomeMessage $a
Happy experimenting with different colors 🙂