No Frills.

I had occasion to move the virtual machine configuration file for a Hyper-V vm recently, where the VHD had already been moved to another location, but the XML file was left behind. Rather than export and then import the vm, you can do this is a simpler fashion.

In 2008R2, in "\programdata\microsoft\windows\hyper-v\virtual machine files" you will find either the XML configuration files or symlinks which point to the actual location of the XML files. If you look at the properties of one of the symlinks, you'll see the path to the XML file and you should be able to identify the VM it's supporting.

Shut down the guest OS in the Hyper-V management console, rename the symlink (like with a .bak extension), and copy the XML file in question to \programdata\microsoft\windows\hyper-v\virtual machines. Once moved, you'll need to reset its permissions to allow the VM access. This is a pretty simple procedure with icacls, since the XML file name is the same as the SID of the VM.

Run "icacls .\ /grant "NT VIRTUAL MACHINE\[VM SID]":F to add the necessary permission. Cycle the Hyper-V VMM service and you're back in business. If the VM gives you errors about saved state when you start it, you'll need to correct the permissions on the associated BIN and VSV files, which you've probably already moved into \programdata\microsoft\windows\hyper-v\virtual machines\\[VMSID].bin and \[VM SID].vsv.