Attempt to clone VM to cloud fails from capability profile mismatch in VMM 2016

Applies to: Windows Server 2016

Symptoms


When you try to clone a deployed virtual machine to a cloud (instead of to a host group or library), the attempt fails with the following error: 

The Virtual Machine <name> specified settings that are not allowed by any capability profile supported by the cloud. A list of validation errors specific to each matching capability profile can be accessed by validating the hardware profile or template before it is rated.

Cause


This issue occurs if the virtual machine does not have a capability profile or classification assigned that matches the destination cloud.

Resolution


To complete the cloning of a virtual machine to a cloud, make sure that the cloud supports the specified hardware capabilities. This requires updating the virtual machine to match the cloud. Alternatively, update the cloud to match the virtual machine. The appropriate method depends on your requirements to enforce the hardware capability and classifications. 

Option 1: Update the cloud properties to match the capability profile that's defined in the properties of the virtual machine. 

Option 2: Remove the capability profile that's defined in the properties of the virtual machine.

More information

Note You can't modify the capability profile for a virtual machine that's not assigned to a cloud. To make this change, use one of the following methods. 

Method 1
  1. In the VMM console, assign the VM to the destination cloud.
  2. Open the properties of the virtual machine.
  3. On the Hardware tab, select the capability profile that you want to enforce (for example, Hyper-V).
  4. Perform the clone operation.
  5. Revert any changes that you made to the source VM (as necessary).

Method 2

Using VMM PowerShell, configure the virtual machine capability profile to match that of the destination cloud.

In the following example, the source VM to clone is SampleVM01, the capability profile to be added is Hyper-V, and the targeted cloud is named Cloud01:

PS C:\> $cp = Get-SCCapabilityProfile -name Hyper-V
PS C:\> $cld = Get-SCCloud -Name Cloud01
PS C:\> Set-SCVirtualMachine -vm SampleVM01 -CapabilityProfile $cp -Cloud $cld