My name’s Thomas Roettinger and I am a private cloud and virtualization Premier Field Engineer at Microsoft.
I was working on creating a service template in SCVMM 2012 and figured out an interesting fact that I would like to share with all of you.
The idea was to create a service template to deploy a service with RDS - Session Host Role installed . This would help me to setup a farm and scale it out depending on the user need.
When setting up the service template and selecting the roles that I require I did it like I am used to do it via Server Manager:
I selected the top category Remote Desktop and the bottom Role Service that I want
Deploying the service template failed with error: 20400 & 21952
The ServerManager.log from the Operating System inside the virtual machine gave me the following error message:
[ServerManagerPS] Error (Id=0) Hyper-V cannot be installed The processor on this computer is not compatible with Hyper-V. To install this role, the processor must have a supported version of hardware-assisted virtualization, and that feature must be turned on in the BIOS.
[ServerManagerPS] Error (Id=0) Install was cancelled.
So I went back to the VM Template and checked my role selection because I thought maybe I selected the Hyper-V Role by mistake. But everything was right there. So what happened?
When selecting a Role and the specifying a Role Service at the same time, SCVMM 2012 checks all required Role dependencies. And because of selecting the Role itself, Hyper-V is a requirement for the Remote Desktop Virtualization Host Role Service. The Hyper-V Role was installed in my virtual machine what is supposed to fail because of missing hardware virtualization feature. So the Server Manager log is right there
So after changing my service template to install only the Role Service - Remote Desktop Session Host , my deployment worked perfectly.
I hope that helps you to understand the dependencies of Role and Role Service to each other and the different behavior compared to Server Manager.