Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
I received this in email today:
"I have XCOPY’d a bunch of VHDX files from one volume to another on WS2016. What’s the easiest / fastest way to fix up the paths for the VM’s???”
The answer to this is quite simple. Open PowerShell and run:
$oldPath = "C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks" $newPath = "D:" get-vm | Get-VMHardDiskDrive | ? path -Like $oldPath* | %{Set-VMHardDiskDrive -VMHardDiskDrive $_ -Path $_.path.Replace($oldPath, $newPath)}
A couple of details on this answer:
- PowerShell is wonderful for these kinds of bulk operations
- While we do not allow you to edit the virtual hard disk path on a saved virtual machine using Hyper-V manager – we do allow you to do this through PowerShell. In fact – there are a lot of things that are blocked in Hyper-V manager that are possible through PowerShell.
Cheers,
Ben
Comments
- Anonymous
January 26, 2017
And if you are a noob to PowerShell (we all were once):The '%' is a shorthand alias of ForEach-Object as is "foreach"And the $_ refers to the object being passed in to the script block between the brackets.Which in the example above is the VMHardDiskDrive path parameter.Get- returns the entire VMHardDiskDrive object and the -like selects the parameter that matches the name pattern "$path*" and this value is piped to the script block and referenced using the $_- Anonymous
January 26, 2017
Thanks for the clarifications! :-)
- Anonymous
- Anonymous
April 10, 2017
This won't work when you have VMReplication enabled on the VM(s)...Is there some way through Powershell to workaround that aswell, I hope ?Need to do this on a couple of huge VMs, and removing and re-seeding the Replica would a huge pain...- Anonymous
April 22, 2017
Have you tried VM Storage Migration ? It should work while VM Replication is enabled.
- Anonymous