When enabling SSH or ESXi shell on a ESXi host you will get a warning in the client summary tab.

This can be disabled by changing the UserVars.SuppressShellWarning to 1. To do this follow the steps below:

  1. Select the ESXi host
  2. Click the Configuration tab
  3. Under Software, choose Advanced Settings
  4. Navigate towards UserVars
  5. Change the value of UserVars.SuppressShellWarning to 1
  6. Save the change by clicking OK

The warning will be gone after this. You can enable it again by changing the value back to 0.

This is something that happened quite a few times to me when installing a new Linux VM. While pressing a key the character gets repeated quite some times. This is quite annoying since this will result in wrong passwords, servernames,… and a lot of frustration.

To resolve this problem you can do the following (using the vSphere client):

  1. Power off the specific VM
  2. Right click the specific VM and select Edit Settings
  3. Click Options, General and finally Configuration Parameters
  4. In the new window: Click Add Row
  5. Under Name enter keyboard.typematicMinDelay with a Value set to 5000000
  6. Close the Configuration Parameters by clicking OK
  7. Close the VM Properties by clicking OK
  8. Power on the virtual machine

This will change the repeat time to 5 seconds. You can always decrease or increase it. Just keep in mind the value is set as micro-seconds.

A small update on the iPad vSphere Client has been released.

v1.2 client includes the following new features:

  • Migrate virtual machines without downtime using vMotion. The feature is available via Host & VM action menus. Virtual machines can also be two-finger flicked/dragged from the Host detail view to enter vMotion mode
  • Ability to email vMotion validation error details to others
  • View task progress reporting on VM cards
  • Ability to refresh vCenter host list
  • Support for ESX 3.5
  • Support for VMware vSphere 5.0

More information can be found at the Communities page and you can get it via the Apple store.

While doing a VMware tools check in my homelab I found a few Linux VMs with the message “Out of date“. These machines were from an old test and I recently started them again for some testing. My first idea on seeing the message was: ‘nothing wrong, I just run a PowerCLI script and everything will be updated‘. After running the script I noticed 3 test servers still being “Out of date” but in my task list the machines did receive the message “Initiated VMware Tools install or upgrade”. I ran the script again to see if it would fix the problem but the machines kept being “Out of date“. Time for a manual intervention!

I did a right click on the machine and noticed the following while running “Install/Upgrade VMware Tools“:

It gave me the idea that VMware tools had crashed or failed to run at boot so I logged on to the machines. Below is the output what happened after a status check and a stop and start.

server02:~# /etc/init.d/vmware-tools status
vmtoolsd is running
server02:~# /etc/init.d/vmware-tools stop
Stopping VMware Tools services in the virtual machine:
   Guest operating system daemon:                                      done
   Virtual Printing daemon:                                            done
   Unmounting HGFS shares:                                             done
   Guest filesystem driver:                                            done
   Guest memory manager:                                               done
   VM communication interface socket family:                           done
   VM communication interface:                                         done
server02:~# /etc/init.d/vmware-tools start
   Checking acpi hot plug                                              done
Starting VMware Tools services in the virtual machine:
   Switching to guest configuration:                                   done
   Guest memory manager:                                              failed
   VM communication interface:                                        failed
   VM communication interface socket family:                          failed
   Guest operating system daemon:                                      done
   Virtual Printing daemon:                                            done

As u can see, 3 services failed so I probably had to reinstall the whole package.

Another right click on the machine with the idea to run “Install/Upgrade VMware Tools” and suddenly I got the following screen:

I could select “Automatic Tools Upgrade” and after waiting for a few minutes for the installer the status changed from “Out of date” to “OK”.

Problem solved and everything is up to date again!

Veeam Backup & Replication is a great tool for backing up your virtual environment. U can use it to backup certain virtual machines or your whole environment by simply creating backup jobs in which u add virtual machines. Veeam has the option which sends an e-mail if a backup was successful or failed.

Sadly there is one thing I couldn’t find and it’s an option to check which virtual machines are being backed up and which are not in a virtual environment.

After some thinking I decided to combine Veeam and PowerCLI as a solution to my problem.

When a job is created there is an advanced option to add a note to a virtual machine which can be used for scripts.

When creating a job click “Advanced” when the following screen appears.

Once the advanced settings open, go to the notifications tab and select “Set successful backup details to this VM attribute”. Change the value from “Notes” to “Backup”.

Every time the job finishes successful Veeam will add an annotation called “Backup” to the virtual machine as seen on the picture below.

Below is a script which will collect all virtual machines in the defined vCenter and run a check on the backup annotation. This will perform a check if the backup was successful in the past 2 days. Finally it will send an overview in plain text via mail.

Please change the required settings on top of the script!

# Set the vCenter Server
$vcenter = "localhost"
# Set the SMTP Server address
$SMTPSRV = "<SMTP SERVER>"
# Set the Email address to receive from
$EmailFrom = "veeam@foonet.be"
# Set the Email address to send the email to
$EmailTo = "<RECEIVER>"
# Set the Email subject
$EmailSubject = "Veeam Backup Information"

# SMTPmail function
function Send-SMTPmail($to, $from, $subject, $smtpserver, $body) {
	$mailer = new-object Net.Mail.SMTPclient($smtpserver)
	$msg = new-object Net.Mail.MailMessage($from,$to,$subject,$body)
	$msg.IsBodyHTML = $false
	$mailer.send($msg)
}

# Get Backedup function
function Get-Backedup ($vm) {
	$val = $vm.CustomFields |where {$_.key -eq "Backup" } | select -Property Value
	$today = Get-Date -Format "d/MM/yyyy"
	$yesterday = get-date -format "d/MM/yyyy" -displayhint date ((get-date).adddays(-1))
	$backupDate = $val.Value
	if ( $backupDate -like "*$today*" -or $backupDate -like "*$yesterday*"  ) {
		$res = 1
	} else {
		$res = 0
	} 
	return ( $res )
}

Connect-VIServer $vcenter | Out-Null

$vms = Get-VM

$resultok=@()
$resultnotok=@()

foreach ($vm in $vms) {
	if (Get-Backedup($vm)) {
		$resultok += "$vm `r`n"
	} else {
		$resultnotok += "$vm `r`n"
	}
}

$body = "==================================================`r`n"
$body += "Backup report $vcenter:`r`n"
$body += "==================================================`r`n`r`n"
$body += "The following VMs have NOT been backed up:`r`n"
$body += "---------------------------------------------------------------`r`n"
$body += $resultnotok | Sort-Object
$body += "`r`n`r`nThe following VMs have been backed up:`r`n"
$body += "--------------------------------------------------------`r`n"
$body += $resultok | Sort-Object

send-SMTPmail -to $EmailTo -from $EmailFrom -subject $EmailSubject -smtpserver $SMTPSRV -body $body

That’s it. Feel free to improve the script or give hints and tips!