Impact of mismatch Guest OS type

During Healthchecks I frequently encounter virtual machines configured with the incorrect Guest OS type specified. Incorrect configuration of Guest OS of the virtual machine can lead to;

• Reduction of performance
• Different default type for the SCSI device *
• Different defaults of devices
• Wrong VMware Tools presented to the Guest OS resulting in failure to install
• Inability to select virtual hardware such as enhanced vmxnet, vmxnet3 or number of vCPUs.
• Inability to activate features such as CPU and Memory Hot Add.
• Inability to activate Fault Tolerance.
• VM burning up 100% of CPU when idling (rare occasions)

Buslogic SCSI Device
* Due to mismatch of Guest OS Type, windows 2000 and Windows 2003 can be configured with a Buslogic SCSI device. Using the Buslogic virtual adapter with Windows 2000 and 2003 will limit the effective IO queue depth of one. This limits disk throughput severely and lead to serious performance degradation. For more information visit KB article 1614

Virtual Machine Monitor and execution mode
Selecting the wrong Guest OS type can be of influence of the selected execution mode.
When a virtual machine is powering on, the VMM inspects the physical CPU’s features and the guest operating system type to determine the set of possible execution modes. This can have a slight impact on performance and in some extreme cases application crashes or BSODs.
VMware published a Must-Read whitepaper about the VMM and execution modes

How to solve the mismatch?
vCenter only displays the configured Guest OS of the Virtual Machine, it will not check the installed operating system inside the virtual machine. Powercli offers the solution to this problem, today more and more people start to discover the beauty of Powercli and incorporate this in their day-to-day activities.

So I’ve asked PowerCLI guru Alan Renouf if he could write a PowerCLI script which can detect the Guest OS mismatch.

Get-View -ViewType VirtualMachine | Where { $_.Guest.GuestFullname} | Sort Name |Select-Object Name, @{N="SelectedOS";E={$_.Guest.GuestFullName}}, @{N="InstalledOS";E={$_.Summary.Config.GuestFullName}} | Out-GridView

Alans "one-liner" checks the configured Gues Os Type in the VM (VM properties) and queries the VMtools to see which operating system it reports.

Once the mismatch is identified, set the correct Guest OS Type in the VM properties as soon as possible. The best way to deal with the mismatch is to power-down the VM before changing the guest OS type.

Frank Denneman

Follow me on Twitter, visit the facebook fanpage of, or add me to your Linkedin network

10 Responses

  1. afokkema says:

    A small edit to the one-liner: where { $_.Guest.GuestFullname -ne $_.Summary.Config.GuestFullName }

    Now it will only display the VMs with a Guest OS mismatch.

  2. Frank Denneman says:

    Arne,Thanks for the additional one liner.

  3. Michael says:

    I think the column headings "SelectedOS" and "InstalledOS" in the output are reversed?

  4. Doug Pratt says:

    One problem I've encountered with Windows 2008 is if the OS type for the VM is Windows 2003, the default debugger is Dr. Watson -- which, of course, doesn't exist.

  5. Doug Finley says:


    Does PowerCLI allow for creating Windows Server 2008 (non-R2) VMs? I believe the closest option for the GuestID is Windows 7 Guest (which I believe functions perfectly well) but results in in a mismatch when 2008 is installed.


  6. Ashok says:

    Thankyou so much for this post !


  1. January 16, 2010

    [...] כמה זמן Frank Denneman פרסם בלוג שמדבר על הבעיות שעלולות להיגרם כתוצאה מההגדרה ל – VM [...]

  2. January 16, 2010

    [...] כמה זמן Frank Denneman פרסם בלוג שמדבר על הבעיות שעלולות להיגרם כתוצאה מההגדרה ל – VM [...]

  3. March 9, 2010

    [...] Hi I have moved this blog to the new site The new home for this article is: Apologies for the inconvenience! Possibly related posts: (automatically generated)Hyper-V WoesHow [...]

  4. April 6, 2010