For those of you who are so inclined to run Hyper-V as a nested VM on ESXi 5.5 (not sure why anyone would want to do such a thing), you should be aware that there is a new guestOS identifier that you can configure your VM to for the most optimal configuration. The main reasons you would want to use this configuration is that by default Windows Enlightenment is enabled and this will prevent Hyper-V from running as it will detect it is running inside of a VM. This configuration will disable Windows Enlightenment to allow you to run Hyper-V.

I noticed a new guestOS identifier called "windowsHyperVGuest" while browsing through the vSphere 5.5 API Reference guide, but when I checked the vSphere Web Client, I did not see this guestOS type as an available option. Perhaps this was not a supported guestOS, after all Nested Virtualization is not officially supported by VMware. In any case, you can still configure your VM by leveraging the vSphere API.

Here is a quick vSphere SDK for Perl script called changeGuestOSID.pl which allows you to reconfigure a VM with a valid guestOS identifier from the vSphere API Reference guide. You can of course easily do this using PowerCLI as well as any other language that can speak to the vSphere API.

Once updated, you should now see it reflected in both the vSphere Web/C# Client:

Note: I did not do extensive testing other than basic installation of latest Hyper-V Server and I do not believe you need any additional settings. If you wish to run nested 64-bit VMs, then you will need to enable VHV.

14 thoughts on “Quick Tip: New Hyper-V guestOS identifier in vSphere 5.5

  1. Is there anyway to insert a pause type command in the script? When I run the script, I see “Reconfiguring guestid…” but not that it was successful. Any help is appreciated, I’m trying to configure a small hyper-v vm in ESXi 5.5 for my MCSA 2012 studies.

  2. PS ver 4 new features – “The Windows PowerShell debugger has been enhanced to allow debugging of Windows PowerShell workflows”

  3. I get the following message when I try to power on the VM:

    “Failed to find a host for powering on the virtual machine. The following faults explain why the registered host is not compatible.
    The guest operating system ‘windowsHyperVGuest’ is not supported.”

    The ESXi server and vCenter are version 5.5. Any ideas? – See more at: http://www.virtuallyghetto.com/2013/09/quick-tip-new-hyper-v-guestos.html?showComment=1384459193301#c854481580578136699

  4. I’ve got the “The guest operating system ‘windowsHyperVGuest” is not supported.” error to when trying to start the Windows Server 2012 R2 VM……..

  5. Did it!
    1: Open *.vmx File and change the GuestOS Entry to “windowsHyperVGuest”
    2: Move the VM if not done from ESXi 5.1 to ESXi 5.5-Host
    3: Change the OS setting in vSphere Client for this VM (When I startet my VM I got an error about an unsupportet GeustOS… so I change to Other – (64-bit) )
    VM is up an running without any errors…
    But… without the start of this article and your feedback I wouldn’d have found this way

    Regads Stefan

  6. I tried this on vSphere 6 but I got the “The guest operating system ‘windowsHyperVGuest” is not supported.” error when starting the VM. In Web Client found that Guest OS version had changed to 32-bit, so once updated to 64-bit it started up ok.

Thanks for the comment!