vSphere PowerCLI Reference



Moves virtual machines to another location.


Move-VM [[-Destination] <VIContainer>] [-Datastore <Datastore>] [-DiskStorageFormat <VirtualDiskStorageFormat>] [-RunAsync] [-VM] <VirtualMachine[]> [-Server <VIServer[]>] [-WhatIf] [-Confirm] [<CommonParameters>]

Related Commands

Online version

Detailed Description

Moves a virtual machine to the location that is specified by the -Destination or the -Datastore parameters. The destination must be a folder, host, cluster, or a resource pool. Moving a virtual machine in a cluster is only possible if the virtual machine is in a resource pool in that cluster. If the virtual machine is outside the cluster, you need to specify a virtual machine host in that cluster as destination. When moving virtual machines that are powered on, VMotion is used. To specify a server different from the default one, use the -Server parameter.


NameTypeDescriptionRequired?Pipeline InputDefault Value
VMVirtualMachine[]Specify the virtual machines you want to move to another location.truetrue (ByValue)
DestinationVIContainerSpecify a folder, host, cluster, or a resource pool where you want to move the virtual machines. If a datacenter is specified for the -Destination parameter, the virtual machines are moved to the datacenter's "vmFolder" folder. The "vmFolder" is a system folder and is guaranteed to exist.
Passing values to this parameter through a pipeline is deprecated and will be disabled in a future release.
falsetrue (ByValue)
ConfirmSwitchParameterIf the value is $true, indicates that the cmdlet asks for confirmation before running. If the value is $false, the cmdlet runs without asking for user confirmation.falsefalse$true
DatastoreDatastoreSpecify the datastore where you want to move the virtual machines.falsefalse
DiskStorageFormatVirtualDiskStorageFormatSpecify a new storage format for the hard disk of the virtual machine you want to move. This parameter is applicable only when moving a virtual machine to a different datastore, using the -Datastore parameter. The valid values are Thin and Thick.falsefalse
RunAsyncSwitchParameterIndicate that the command returns immediately without waiting for the task to complete. In this mode, the output of the cmdlet is a Task object. For more information about the -RunAsync parameter run " help About_RunAsync" in the vSphere PowerCLI console.falsefalse
ServerVIServer[]Specify the vSphere servers on which you want to run the cmdlet. If no value is given to this parameter, the command runs on the default servers. For more information about default servers, see the description of Connect-VIServer.falsefalse
WhatIfSwitchParameterIndicate that the cmdlet is run only to display the changes that would be made and actually no objects are modified.falsefalse

Return Type



Supported on VirtualCenter 2.5/ ESX 3.5 and newer.


-------------- Example 1 --------------

Get-VM -Name VM | Move-VM -Destination

Moves the virtual machine named VM from its current location to the host on IP address

-------------- Example 2 --------------

Move-VM -VM VM -Destination Folder

Moves the virtual machine to a folder called Folder. Note that you are able to move virtual machines only to folders containing virtual machines (the 'blue' folders in the vSphere Client).

-------------- Example 3 --------------

Move-VM -VM VM -Destination ResourcePool

Moves the virtual machine to the ResourcePool resourcepool. The ESX host does not change.

Copyright © 1998 - 2011 VMware, Inc. All rights reserved.