Hyper-v fails to enable live migration

hyper-vhyper-v-server-2012-r2windows-server-2012-r2

I'm trying to enable live migration on my Windows 2012 R2 hyper-v server, and it keeps failing. When I try through the GUI, I get an error that says "Error applying Live Migration changes. Failed to modify service settings."

If I try to enable it via the Enable-VMMigration powershel cmdlet, I get the following result:

Enable-VMMigration : Failed
to modify service settings. The operation cannot be performed while
the virtual machine is in its current state. At line:1 char:1
+ Enable-VMMigration
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Microsoft.HyperV.PowerShell.VMTask:VMTask) [Enable-VMMigration], Virt
ualizationOperationFailedException
+ FullyQualifiedErrorId : InvalidState,Microsoft.HyperV.PowerShell.Commands.EnableVMMigrationCommand

I've removed & reinstalled hyper-v on the server, but with no luck. Any suggestions as to how to resolve this?

Additional Details:

  • There is no cluster.
  • The server previously had 2012, but had the VMs migrated off for the upgrade to 2012 R2
  • The VMMS service is running
  • The server used to have the SCVMM Agent installed on it, has since been uninstalled
  • I am able to create and start a local VM, but not able to migrate anything to the server from another host
  • There is no antivirus software installed on the server
  • The user I'm using when trying to do this is a member of the local Administrators group
  • The machine is domain joined

Best Answer

I don't remember where I ran across this, maybe in the Microsoft forums. Documenting here for anyone else that runs into this issue...

Renaming C:\Windows\System32\GroupPolicy\Machine\Registry.pol to C:\Windows\System32\GroupPolicy\Machine\Registry.polx appears to have solved my problem.

It appears the machine registry.pol file is corrupted - verify this first by attempting to open the local Group Policy editor by running gpedit.msc - it should fail saying it cannot open the local computer policy. The action above simply renames the registry.pol so that the machine can recreate it the next time it processes the domain-wide group policy.