Archive for April, 2012

AppAssure Webinar – The Top 3 Backup Technologies for 2012

April 24th, 2012

Webinar Announcement:

What: The Top 3 Backup Technologies for 2012

When: Wednesday, April 25, 12:00 PM CST


Details: FEATURED SPEAKER: Joseph Hand, Sr. Director of Product Strategy, AppAssure Software.  Learn about the 3 Backup & Recovery technologies you need for 2012!  Instant Restore with near-zero RTO, Backup and Recovery auto-verification, and Cross-platform Data Recovery – P2V, V2V, V2P.

For more on this and other AppAssure webinars, please visit

RVTools 3.3 Now Available

April 23rd, 2012

Breaking News: RVTools 3.3 from Rob de Veij is now generally available to the public.  Release notes for this build:

  • GetWebResponse timeout value changed from 5 minutes to 10 minutes (for very big environments)
  • New tabpage with HBA information
  • On vDatastore tab the definition of the Provisioned MB and In Use MB columns was confusing! This is changed now.
  • RVToolsSendMail accepts now multiple recipients (semicolon is used as separator)
  • Folder information of VMs and Templates are now visible on vInfo tabpage
  • Bugfix: data in comboboxes on filter form are now sorted
  • Bugfix: Problem with api version 2.5.0 solved
  • Bugfix: Improved exception handling on vCPU tab.
  • Bugfix: Improved exception handling on vDatastore tab.



Using PowerCLI To Answer Virtual Machine Message Questions

April 17th, 2012

Scripters believe in efficiency, automation, working smarter and not harder, etc.  You’ll sometimes hear them say something like “Any process which is repeated once or more should be scripted”.  Myself, I am not the world’s greatest scripter.  I have to work at it.  Thus my personal threshold for committing to a scripted method is higher than one repetition.

In my environment, I did come across a particular process which needed to be repeated 20 or more times – Answering a virtual machine question.  Based on what I’m working on, conceivably I was going to run into this a lot more.  This is a great candidate for scripting.

Snagit Capture

The Virtual Machine Message I’m faced with deals with the relocation of the VM.  Via the vSphere Client, my possible choices to answer the question are “Cancel”, “I moved it”, or “I copied it”.  I don’t have the patience or desire to mouse through this hundreds of times.

Snagit Capture

I want to provide the same answer, “I moved it”, for every VM in inventory which has this question.  The script to accomplish this is fairly simple, even by my standards.  Once the PowerCLI connection is established to the vCenter Server or ESX(i) host, it’s a one-liner.  Following is the PowerShell script which gets the job done for my situation:

Connect-VIServer vc501.boche.lab
Get-VM | Get-VMQuestion | Set-VMQuestion -Option “I moved it” -Confirm:$false

Note that there are different types of Virtual Machine Message questions which will yield a different set of possible answers.  Be sure to query a VM having a question via PowerCLI for the possible answers to that question.  Get-VM | Get-VMQuestion -full should do it.  Once the possible answers are revealed, use Set-VMQuestion -Option to provide an answer.

Also note the script above will cycle through all VMs in inventory, and for those having a question, it will provide the same response for each VM.  Thus the assumption is made that all VMs with pending questions have the same question being asked.  To respond to explicit question types or to filter the VMs being looped through, the script would need to be refined.

For more information on the Get-VMQuestion or Set-VMQuestion PowerCLI cmdlets, use Get-Help Get-VMQuestion -full or Set-Help Get-VMQuestion -full respectively.

Update 6/30/15:  I ran into a situation with vSphere 5.5 Update 2 and PowerCLI where “I moved it” was not being recognized as a valid answer to the question, yet I needed to provide this as the correct answer.


PowerCLI C:\> Get-VMQuestion -VM mytestvm

Possible answers are:

Cancel, button.uuid.movedTheVM, button.uuid.copiedTheVM

I’m not sure why this changed or when, but in my case the new answer string to provide is ‘button.uuid.movedTheVM’

I needed to answer the same question on a large number of virtual machines so I used the following PowerShell:

Get-VM | Get-VMQuestion | Set-VMQuestion -Option ‘button.uuid.movedTheVM’ -Confirm:$false