By updating VM to the most current configuration version on Hyper-v hosts you get the best compatibility option on the VM making the VM best performance on the virtual environment.
Supported VM configuration versions for long-term servicing hosts
The following table lists the VM configuration versions for hosts running a long-term servicing version of Windows.
Hyper-V host Windows version | 10.0 | 9.3 | 9.2 | 9.1 | 9.0 | 8.3 | 8.2 | 8.1 | 8.0 | 7.1 | 7.0 | 6.2 | 5.0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows Server 2022 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✖ | ✖ | ✖ | ✖ |
Windows 10 Enterprise LTSC 2021 | ✖ | ✖ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✖ | ✖ | ✖ | ✖ |
Windows Server 2019 | ✖ | ✖ | ✖ | ✖ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Windows 10 Enterprise LTSC 2019 | ✖ | ✖ | ✖ | ✖ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Windows Server 2016 | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✔ | ✔ | ✔ | ✔ | ✔ |
Windows 10 Enterprise 2016 LTSB | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✔ | ✔ | ✔ | ✔ | ✔ |
Windows 10 Enterprise 2015 LTSB | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✔ | ✔ |
Windows Server 2012 R2 | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✔ |
Windows 8.1 | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✔ |
To Check The Hyper-V host Configuration version supported on the host :
Get-VMHostSupportedVersion -ComputerName "Hyper-v host name"
To check the current configuration version running the of all the VM running on one Hyper-v host :
Get-VM -ComputerName "Hyper-v host name" * | Format-Table Name, Version
To upgrade the VM configuration version you first need the shut down the VM, then execute :
Get-VM -ComputerName "Hyper-V Host Name" "VM name" | Update-VMVersion
Start the VM, You can also check on the Hyper-V manager the current running configuration version
Here is a powershell script that automatically upgrade all the VM’s on Hyper-v Host from Version 5
# Check configuration version of each VM on the Hyper-V host $vms = Get-VM foreach ($vm in $vms) { $vmName = $vm.Name $vmConfigVersion = $vm.Version Write-Host "Virtual Machine: $vmName" Write-Host "Configuration Version: $vmConfigVersion" # If configuration version is 5, upgrade it if ($vmConfigVersion -eq "5.0") { Write-Host "Shutting down $vmName..." Stop-VM -Name $vmName -Force # Upgrade configuration version Write-Host "Upgrading configuration version of $vmName..." Update-VMVersion -Name $vmName -Force # Start the VM Write-Host "Starting $vmName..." Start-VM -Name $vmName } else { Write-Host "$vmName is already on a higher configuration version. Skipping..." } Write-Host "" }
Good Luck