- SmartDeploy: Rethinking software deployment to remote workers in times of a pandemic - Thu, Jul 30 2020
- Outlook attachments now blocked in Office 365 - Tue, Nov 19 2019
- PolicyPak MDM Edition: Group Policy and more for BYOD - Tue, Oct 29 2019
Update: Read our review of Microsoft Virtual Machine Converter 3.0
Feel stuck in a VMware environment? I certainly do. Years ago, vSphere was the only real player. Windows Server 2012 put Hyper-V front and center. How do you go from VMware to Hyper-V without wasting weeks of work? Easy! Download and install Microsoft’s Virtual Machine Converter (MVMC) 2.0.
MVMC can take you from vSphere to Hyper-V or Azure
What operating systems can MVMC migrate? More than you would think! MVMC supports every Microsoft OS from Vista forward, as well as several Linux flavors such as Red Hat and Ubuntu. You can view the full list of supported operating systems at the link above. Just be sure to download the MVMC admin guide. We will cover GUI conversion first, followed by the PowerShell method.
Convert from VMware to Hyper-V with a GUI
MVMC can convert your VMware machines to Hyper-V or Microsoft Azure. If you are migrating a VM to Azure, be sure that you have your account and subscription details handy; you will need them to complete the migration. For this post, we will be taking the more common route by migrating our machine to Hyper-V.
Launch MVMC and select Hyper-V as your destination. Specify your Hyper-V host name. If your current logged-on account doesn’t have the ability to create VMs on the host, you will need to specify alternative credentials as well.
Before the VM is converted, you will need to specify the disk location, type, and format. The most common (and default) choices are “dynamically expanding” and “VHDX.” You will then need to specify the VM source. This can be a vCenter, an ESX, or an ESXi server. Conversion is supported for vSphere 5.1 and 5.5. Once your credentials to your source server are validated, you can select any available VM and view basic resource and state information.
Selecting VMs from your VMware source
If a Windows virtual machine is turned on, you will need local administrative permissions to the VM. MVMC will snapshot the machine, uninstall the VMware tools, and power off the source machine. By default, the destination machine is also powered off after migration completes. If you are migrating a Linux machine, you will need to perform those migration steps manually. Finally, specify a local folder to store the virtual hard disks during conversion. Ensure that your local machine is large enough to store this data, and then proceed to the summary page. MVMC will double-check your options and highlight any potential problems with the migration. The transition time is tied to the size of the VM. In my test environment, a 60 GB test machine took about 30 minutes.
Migration of a VM with MVMC 2.0
Convert from VMware to Hyper-V with PowerShell
If you want to speed up your conversion from VMware to Hyper-V, you can use the MVMC PowerShell module. You will need to have MVMC 2.0 installed in order to use the MVMC cmdlets. Start by importing the MVMC module.
Import-Module “C:\Program Files\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1”
The quickest way to begin migrating VMs is to use the sample script provided in the Microsoft Virtual Machine Converter Administration Guide on page 14. To use it in your environment, you will need to make a few changes. A slightly modified version with those changes is shown below. Be sure to create the folders mentioned in the script ahead of time and to fill out the configuration block.
Start-Transcript "c:\Test\SampleLog.log" #Configuration Block $SourceServer = $SourceVMName = $HyperVServer = # establish a connection to the source server $sourceUser= 'root' $sourcePassword = ConvertTo-SecureString 'SecurePassword' -AsPlainText -Force $sourceCredential = New-Object PSCredential ($sourceUser, $sourcePassword) $sourceConnection = New-MvmcSourceConnection -Server $SourceServer -SourceCredential $sourceCredential -verbose # select the the virtual machine to convert $sourceVM = Get-MvmcSourceVirtualMachine -SourceConnection $sourceConnection -verbose | where {$_.Name -match $SourceVMName} # convert the source virtual machine $destinationLiteralPath = 'c:\test' $machineDriveCollection = ConvertTo-MvmcVirtualHardDiskOvf -SourceConnection $sourceConnection -DestinationLiteralPath $destinationLiteralPath -GuestVmId $sourceVM.GuestVmId -verbose # copy the disks and .ovf file to the destination Hyper-V host. The .ovf file contains the source virtual machine’s configuration information # NOTE: This step is not needed on 2-box conversions, this represents a 3-box conversion. $hyperVServerVhdPath = '\\$HyperVServer \c$\Test' Copy-Item -Path $machineDriveCollection.Ovf.DirectoryName -Destination $hyperVServerVhdPath -recurse $destinationLiteralPath = Join-Path $hyperVServerVhdPath $machineDriveCollection.Ovf.Directory.Name # provision a Hyper-V virtual machine $convertedVM = New-MvmcVirtualMachineFromOvf -DestinationLiteralPath $destinationLiteralPath -DestinationServer $hyperVServer Stop-Transcript
This script could be modified to pull several server names from a text file or to loop through available clients. Either way, PowerShell makes migration easier.
Microsoft Virtual Machine Converter 2.0 allows you to move from a VMware world to Hyper-V. MVMC 3.0 is expected to include additional features, such as physical to virtual migration and broader OS support. If you have used MVMC to migrate your environment, what challenges did you face? What features would you like to see?
Great article Joseph.
You mention “This script could be modified to pull several server names from a text file or to loop through available clients. Either way, PowerShell makes migration easier.” I need to migrate a large number of VM’s from VMware 5.5 to Hyper-V 2012 R2.THe Migration Automation Toolkit doesn’t support VMware 5.5. So I’m trying to automate the VM migration as much as possible with MVMC 3.0. I’d appreciate any help you could provide in scripting this.
Thanks!
Here is a modified script that you could use:
Start-Transcript “c:\Test\SampleLog.log”
#Configuration Block
$SourceServer =
$HyperVServer =
#CSV should have one column with the header of names
$importedVMs = import-csv .\vms.csv
foreach ($importedVM in $importedVMs){
$SourceVMName = $importedVM.name
# establish a connection to the source server
$sourceUser= ‘root’
$sourcePassword = ConvertTo-SecureString ‘SecurePassword’ -AsPlainText -Force
$sourceCredential = New-Object PSCredential ($sourceUser, $sourcePassword)
$sourceConnection = New-MvmcSourceConnection -Server $SourceServer -SourceCredential $sourceCredential -verbose
# select the the virtual machine to convert
$sourceVM = Get-MvmcSourceVirtualMachine -SourceConnection $sourceConnection -verbose | where {$_.Name -match $SourceVMName}
# convert the source virtual machine
$destinationLiteralPath = ‘c:\test’
$machineDriveCollection = ConvertTo-MvmcVirtualHardDiskOvf -SourceConnection $sourceConnection -DestinationLiteralPath $destinationLiteralPath -GuestVmId $sourceVM.GuestVmId -verbose
# copy the disks and .ovf file to the destination Hyper-V host. The .ovf file contains the source virtual machine’s configuration information
# NOTE: This step is not needed on 2-box conversions, this represents a 3-box conversion.
$hyperVServerVhdPath = ‘\\$HyperVServer \c$\Test’
Copy-Item -Path $machineDriveCollection.Ovf.DirectoryName -Destination $hyperVServerVhdPath -recurse
$destinationLiteralPath = Join-Path $hyperVServerVhdPath $machineDriveCollection.Ovf.Directory.Name
# provision a Hyper-V virtual machine
$convertedVM = New-MvmcVirtualMachineFromOvf -DestinationLiteralPath $destinationLiteralPath -DestinationServer $hyperVServer
}
Stop-Transcript
Hi.
As you know, Microsoft published Mvmc ver 3.1 so, I want to migrate a windows server 2016 on esxi 6.5 to hyper-v that run on windows server 2019 core.Everthing is OK,but at the end in summery level I got error shows "UNC Path is not valid or does not have write permissions".I created a domin that all machine were joined to it. Also a shared path on windows core to move vm on esxi to hyper-v. Can you help me.
Thanks.