Hyper-V Virtual Machine Mover

This tool is now available with the source code on CodePlex : http://vmmove.codeplex.com

Hyper-V Virtual Machine Mover is a tool that allows to attach or detach Virtual Machines without having to export them.

This utility is meant to work on Hyper-V RTM only. It has NOT been tested on Hyper-V for Windows Server 2008 SP2 nor Windows Server 2008 Hyper-V R2.

This utility can also work remotely, particularly with Hyper-V Server 2008.

Here is a list of facts to know before using this tool :

  • A VM can only be detached if it is in the "Saved" or "Stopped" state.
  • It is not necessary to stop the Hyper-V service and all modifications are detected live by the service.
  • A VM can only be imported if it contains at least on HDD on the IDE 0 controller.
  • All the VM files must be under the same directory, HDD and snapshots.
  • All files that are modified are backed-up next to the original files; All other files are not modified nor moved.
  • .NET 3.5 must be installed.
  • Both command line and GUI tools must run "as administrator".
  • For remote operations, the current user must be an member of the administrators group of the remote system.

This utility comes in two flavors, a command line tool and an GUI.

Download Hyper-V VM Move

Version (2009/05/10) Added support for VMs without snapshots, fixed issue while attaching VM with VHDs not in the "Virtual Hard Drive" directory.

Version (2009/03/28) Added support for remote operation.

Version (2009/02/20) Initial Release.

The Command Line utility

The command line utility supports two commands. The first to detach a virtual machine :

    vmmove d "my vm" "myserver"

The server parameter is optional. If omitted, the tool will perform the operation on the local machine.

Now to attach a VM :

    vmmove a "C:\Hyper-V\MyVM" "myserver"

The server parameter is also optional here. The path specified is always considered as a local path for the target Hyper-V service even if it is a remote machine.

The GUI Utility

The GUI utility allows to perform both attach and detach operations visually, but only on the local machine. Remote operations may be added in a future version of the tool.

About me

My name is Jerome Laban, I am a Software Architect, C# MVP and .NET enthustiast from Montréal, QC. You will find my blog on this site, where I'm adding my thoughts on current events, or the things I'm working on, such as the Remote Control for Windows Phone.