Moving a Virtual Machine’s Storage in Hyper-V Using PowerShell


When managing virtual machines (VMs) in a Hyper-V environment, one common task is relocating a VM’s storage to a new location. This process involves moving the virtual hard disks and configuration files to improve performance, organization, or comply with storage policies. PowerShell, with its comprehensive set of cmdlets for Hyper-V management, makes this task straightforward. This article will guide you through the process of moving a virtual machine’s storage location in Hyper-V using PowerShell commands, ensuring a smooth transition with minimal downtime.

Preparation and Considerations

Before initiating the move, ensure that:

  • You have administrative privileges on the Hyper-V host.
  • The Hyper-V PowerShell module is installed.
  • The destination storage location has sufficient space and is accessible to the Hyper-V host.
  • The VM is in a state that allows moving (preferably turned off or in a saved state for minimal complications).
Recommended For You:  15 Exchange Server PowerShell Commands Every Admin Should Know

Moving the Virtual Machine Storage

To move a VM’s storage location, we will use the Move-VMStorage cmdlet. This cmdlet allows for the relocation of the VM’s configuration files, virtual hard disks, and checkpoint files to a new location. The basic syntax of the command is as follows:

Move-VMStorage -VMName <VMName> -DestinationStoragePath <NewStoragePath>
  • <VMName>: The name of the virtual machine you wish to move.
  • <NewStoragePath>: The path to the new location where you want the VM’s storage to be moved.

Example Scenario

Suppose you have a VM named “TestVM” that you want to move to a new location “D:\VMs\TestVM”. Here’s how you would do it:

Move-VMStorage -VMName "TestVM" -DestinationStoragePath "D:\VMs\TestVM"

This command moves all storage associated with “TestVM” to “D:\VMs\TestVM”, including its virtual hard disks, configuration files, and checkpoints.

Verifying the Move

After the move operation completes, it’s essential to verify that the VM is functioning correctly and that all files are correctly located in the new storage path. You can start the VM and check its operation within Hyper-V Manager or use PowerShell to inspect the VM’s properties.

Recommended For You:  How to run PowerShell script
Get-VM -Name "TestVM" | Select-Object VMID, State, Path

This command retrieves and displays the VMID, current state, and path of “TestVM”, allowing you to confirm the new location is set correctly.


Moving a virtual machine’s storage location in Hyper-V using PowerShell is a powerful and efficient method for managing VM resources. By following the steps outlined above, you can ensure your VMs are organized according to your storage strategies, leading to better performance and manageability. PowerShell commands offer a level of automation and precision that is invaluable for system administrators and IT professionals working in virtualized environments.

Muhammad Faizan

Hi, My name is Muhammad Faizan and i have spent last 15 years working as System Administrator mainly with Microsoft Technologies. I am MCSE, MCTP, MCITP, certified professional. I love scripting and Powershell is the scripting language i am in love with.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Check Also
Back to top button