{"id":3625,"date":"2025-01-19T19:50:37","date_gmt":"2025-01-19T17:50:37","guid":{"rendered":"https:\/\/vpxd.dc5.cz\/?p=3625"},"modified":"2025-01-19T19:54:05","modified_gmt":"2025-01-19T17:54:05","slug":"give-your-esxi-host-a-personal-touch-with-a-custom-welcome-message-the-powershell-way","status":"publish","type":"post","link":"https:\/\/vpxd.dc5.cz\/index.php\/2025\/01\/19\/give-your-esxi-host-a-personal-touch-with-a-custom-welcome-message-the-powershell-way\/","title":{"rendered":"Give Your ESXi Host a Personal Touch with a Custom Welcome Message &#8211; the PowerShell way"},"content":{"rendered":"\n<p><br>Ever wanted to spruce up that default login screen on your ESXi host or have some fun with your DCUI? Then you\u2019re in the right place! In this post, I\u2019ll walk through using the Annotations.WelcomeMessage advanced setting to display a custom welcome message on your ESXi host. Best of all, I\u2019ll share a neat PowerShell function to make it easy.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Why Customize the Welcome Message?<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Personalization<\/strong>: Display a personal greeting, instructions, or a quick reminder for anyone logging into the ESXi console.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Useful Info<\/strong>: Share contact details or support info in case someone needs to know who to call if something breaks.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Fun Factor<\/strong>: It\u2019s always nice to see something other than \u201cWelcome to VMware ESXi\u201d from time to time at least in homelab.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Security: <\/strong>Display security\/legal warning.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The Advanced Setting: Annotations.WelcomeMessage<\/strong><\/h2>\n\n\n\n<p><strong>Annotations.WelcomeMessage<\/strong> is an advanced ESXi host parameter. It\u2019s where you store the text you want displayed in <strong>DCUI<\/strong> on the default console screen (replacing some default text, similar to screenshot below).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1440\" height=\"1080\" src=\"https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/image-1440x1080.png\" alt=\"\" class=\"wp-image-3626\" srcset=\"https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/image-1440x1080.png 1440w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/image-800x600.png 800w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/image-768x576.png 768w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/image-1536x1152.png 1536w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/image-1200x900.png 1200w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/image.png 1549w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\"><em>(virtual ESXi)<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><br><strong>PowerShell Script: Set-WelcomeMessage Function<\/strong><\/h2>\n\n\n\n<p><br>Here is the star of the show\u2014my simple PowerShell function that taps into VMware\u2019s PowerCLI to set Annotations.WelcomeMessage on your ESXi host. It even shows you the old message before setting the new one.<\/p>\n\n\n\n<p>You can download it from my GitHub repo in ESXi folder from my GitHub repo: <strong><a href=\"https:\/\/github.com\/musil\/vSphere_scripts\">https:\/\/github.com\/musil\/vSphere_scripts<\/a> <\/strong>or use this direct link to a script file: <a href=\"https:\/\/github.com\/musil\/vSphere_scripts\/blob\/main\/ESXi\/set_welcome_message.ps1\">https:\/\/github.com\/musil\/vSphere_scripts\/blob\/main\/ESXi\/set_welcome_message.ps1<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Function Set-WelcomeMessage {\n    &lt;#\n        .SYNOPSIS\n        This function retrieves the vCenter version and build number. \n        Based on https:\/\/knowledge.broadcom.com\/external\/article\/315410\/\n    \n        .NOTES\n        File Name      : set_welcome_message.ps1\n        Author         : Stanislav Musil\n        Prerequisite   : PowerShell\n        Website        : https:\/\/vpxd.dc5.cz\/index.php\/category\/blog\/\n        X (Twitter)    : https:\/\/www.x.com\/stmusil\n    \n        .DESCRIPTION\n        The script is a function that takes a single parameter, the vCenter server name. Retrieves the version and build number. \n        To use the function, you can dot-source the script and then call the function. \n        Windows:   . .\\set_welcome_message.ps1\n        Mac\/Linux: . .\/set_welcome_message.ps1\n    \n        .EXAMPLE\n        Set-WelcomeMessage -Hostname \"ESXi.example.com\" -WelcomeMessage \"Welcome to {{hostname}\"\n\n    #&gt;\n    param (\n        &#91;string]$HostName,\n        &#91;string]$WelcomeMessage\n    )\n   \n    # Ensure PowerCLI module is imported\n    if (-not (Get-Module -Name VMware.VimAutomation.Core -ErrorAction SilentlyContinue)) {\n        Import-Module VMware.VimAutomation.Core\n    }`\n\n# Define the target host and the parameter values\n$ESXihost = Get-VMHost -Name $HostName\n$paramName = \"Annotations.WelcomeMessage\"\n\n$current = Get-AdvancedSetting -Entity $ESXihost -Name $paramName\nWrite-Host \"Current Weclome message:\"  $current.Value\n\n# Set the advanced parameter\nGet-AdvancedSetting -Entity $ESXihost -Name $paramName | Set-AdvancedSetting -Value $WelcomeMessage -Confirm:$false\n\n# Verify the change\n$updatedSetting = Get-AdvancedSetting -Entity $ESXihost -Name $paramName\nWrite-Output \"New $paramName value on $ESXihost : $($updatedSetting.Value)\"\n\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How to Run It<\/strong><\/h2>\n\n\n\n<p>1. <strong>Dot-source<\/strong> the script (so the function is recognized):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>On Windows:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>. .\\set_welcome_message.ps1<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>On Mac\/Linux:<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>. .\/set_welcome_message.ps1<\/code><\/pre>\n\n\n\n<p>2. <strong>Execute the function<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Set-WelcomeMessage -Hostname \"ESXi.example.com\" -WelcomeMessage \"Welcome to my ESXi host!\"<\/code><\/pre>\n\n\n\n<p><br>3. That\u2019s it! Now when you check the DCUI over iDRAC\/IPMI\/iLO etc.. or on directly on console screen, you\u2019ll see your brand-new custom text.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Change it back to default<\/h2>\n\n\n\n<p>just set empty parameter \ud83d\ude42<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Set-WelcomeMessage -Hostname \"ESXi.example.com\" -WelcomeMessage \"\"<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Final Thoughts<\/strong><\/h2>\n\n\n\n<p>Customizing your ESXi\u2019s welcome message is quick, easy, and surprisingly fun. Whether you\u2019re 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!<\/p>\n\n\n\n<p><br>Happy customizing!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Manual way<\/h2>\n\n\n\n<p><a href=\"https:\/\/knowledge.broadcom.com\/external\/article\/315410\">https:\/\/knowledge.broadcom.com\/external\/article\/315410<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Advanced Examples<\/h2>\n\n\n\n<p>To get much awesome welcome message you need to use much complicated formating tags.<\/p>\n\n\n\n<p>Welcome DCUI screen from my homelab: <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1456\" height=\"1080\" src=\"https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-pxdu-1456x1080.png\" alt=\"\" class=\"wp-image-3627\" srcset=\"https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-pxdu-1456x1080.png 1456w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-pxdu-800x594.png 800w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-pxdu-768x570.png 768w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-pxdu-1536x1140.png 1536w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-pxdu-1200x890.png 1200w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-pxdu.png 1546w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">My Homelab Welcome Message<\/h2>\n\n\n\n<p>To make it more easy I just &#8220;save&#8221; all the parameters of the welcome message into the variable $a. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\n$a=\"\n{align:left}{bgcolor:black}{color:white} {esxproduct} (VMKernel Release {esxversion})\n{bgcolor:black}{align:left}\n{align:left}{bgcolor:black}{color:white} DC5 - Homelab\n{bgcolor:black}{align:left}\n{align:left}{bgcolor:black}{color:white} Memory: {memory}\n{bgcolor:black}{align:left}\n{align:left}{bgcolor:black}{color:white}NOTE:\n{align:left}{bgcolor:black}{color:white}     if you need help contact support@homelab\n{bgcolor:black}{align:left}\n{bgcolor:black}{align:left}\n{bgcolor:black}{align:left}\n{bgcolor:black}{align:left}\n{bgcolor:black}{align:left}\n{bgcolor:black}{align:left}\n{bgcolor:black}{align:left}\n{bgcolor:black}{align:left}\n{bgcolor:black}{align:left}\n{bgcolor:black}{align:left}\n{bgcolor:black}{align:left}\n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black} To manage this host, go to:                                                                                                \n{bgcolor:yellow}{color:black} http:\/\/{ip}                                                                                                         \n{bgcolor:yellow}{color:black} http:\/\/{hostname}                                                                                               \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{bgcolor:yellow}{color:black}                                                                                                                            \n{align:left}{bgcolor:black} {color:red} &lt;F2&gt; Customize System\/View Logs                                                                   &lt;F12&gt; Shut Down\/Restart {\/align}\n\"<\/code><\/pre>\n\n\n\n<p>And then just run the same command and instead of welcome message I used the $a variable<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Set-WelcomeMessage -Hostname \"fs-vsan-05.int.dc5.cz\" -WelcomeMessage $a<\/code><\/pre>\n\n\n\n<p><strong><em>Happy experimenting with different colors \ud83d\ude42<\/em><\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Another screenshots from my testing<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1454\" height=\"1080\" src=\"https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-pqon-1454x1080.png\" alt=\"\" class=\"wp-image-3628\" srcset=\"https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-pqon-1454x1080.png 1454w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-pqon-800x594.png 800w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-pqon-768x570.png 768w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-pqon-1536x1141.png 1536w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-pqon-1200x891.png 1200w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-pqon.png 1543w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1457\" height=\"1080\" src=\"https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-ptxg-1457x1080.png\" alt=\"\" class=\"wp-image-3629\" srcset=\"https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-ptxg-1457x1080.png 1457w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-ptxg-800x593.png 800w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-ptxg-768x569.png 768w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-ptxg-1536x1138.png 1536w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-ptxg-1200x889.png 1200w, https:\/\/vpxd.dc5.cz\/wp-content\/uploads\/2025\/01\/SCR-20250119-ptxg.png 1541w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Ever wanted to spruce up that default login screen on your ESXi host or have some fun with your DCUI? Then you\u2019re in the right place! In this post, I\u2019ll walk through using the Annotations.WelcomeMessage advanced setting to display a custom welcome message on your ESXi host. Best of all, I\u2019ll share a neat PowerShell &hellip; <a href=\"https:\/\/vpxd.dc5.cz\/index.php\/2025\/01\/19\/give-your-esxi-host-a-personal-touch-with-a-custom-welcome-message-the-powershell-way\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Give Your ESXi Host a Personal Touch with a Custom Welcome Message &#8211; the PowerShell way&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":3627,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,39,3,35,8],"tags":[40,13,36,37,20],"class_list":["post-3625","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-esxi","category-homelab","category-powercli","category-vmware","tag-automation","tag-esxi","tag-powercli","tag-powershell","tag-vmware"],"_links":{"self":[{"href":"https:\/\/vpxd.dc5.cz\/index.php\/wp-json\/wp\/v2\/posts\/3625","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpxd.dc5.cz\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vpxd.dc5.cz\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vpxd.dc5.cz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vpxd.dc5.cz\/index.php\/wp-json\/wp\/v2\/comments?post=3625"}],"version-history":[{"count":2,"href":"https:\/\/vpxd.dc5.cz\/index.php\/wp-json\/wp\/v2\/posts\/3625\/revisions"}],"predecessor-version":[{"id":3632,"href":"https:\/\/vpxd.dc5.cz\/index.php\/wp-json\/wp\/v2\/posts\/3625\/revisions\/3632"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpxd.dc5.cz\/index.php\/wp-json\/wp\/v2\/media\/3627"}],"wp:attachment":[{"href":"https:\/\/vpxd.dc5.cz\/index.php\/wp-json\/wp\/v2\/media?parent=3625"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vpxd.dc5.cz\/index.php\/wp-json\/wp\/v2\/categories?post=3625"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vpxd.dc5.cz\/index.php\/wp-json\/wp\/v2\/tags?post=3625"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}