Hyper-V MPE 2016 Virtual Machine Configuration Version

HyperV.MPE.2016.VMConfigurationVersion.Monitor (UnitMonitor)

Knowledge Base article:

Summary

This monitor check if your Virtual Machine is Up To Date with VM Host Configuration Version.

It will be unhealthy if your VM has an earlier version of Hyepr-V host (VM Host Configuration Supported Version by default).

Why should I upgrade the virtual machine configuration version?

When you move or import a virtual machine to a computer that runs Hyper-V on Windows Server 2016 or Windows 10, the virtual machine"s configuration isn't automatically updated. This means that you can move the virtual machine back to a Hyper-V host that runs a previous version of Windows or Windows Server. But, this also means that you can't use some of the new virtual machine features until you manually update the configuration version. You can't downgrade the virtual machine configuration version after you've upgraded it.

The virtual machine configuration version represents the compatibility of the virtual machine's configuration, saved state, and snapshot files with the version of Hyper-V. When you update the configuration version, you change the file structure that is used to store the virtual machines configuration and the checkpoint files. You also update the configuration version to the latest version supported by that Hyper-V host. Upgraded virtual machines use a new configuration file format, which is designed to increase the efficiency of reading and writing virtual machine configuration data. The upgrade also reduces the potential for data corruption in the event of a storage failure.

If you have virtual machines that you created with an earlier version of Hyper-V, some features may not work with those virtual machines until you update the configuration version.

Resolution

Upgrade the virtual machine configuration version

External content

https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/deploy/Upgrade-virtual-machine-version-in-Hyper-V-on-Windows-or-Windows-Server

Element properties:

TargetHyperV.MPE.2016.VMConfigurationVersion
Parent MonitorSystem.Health.ConfigurationState
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeHyperV.MPE.2016.VMConfigurationVersion.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Hyper-V MPE 2016 Alert: VM Configuration Version
Check if the VM COnfiguration Version is up to date.
RunAsDefault

Source Code:

<UnitMonitor ID="HyperV.MPE.2016.VMConfigurationVersion.Monitor" Accessibility="Public" Enabled="true" Target="HVMPE2016Dis!HyperV.MPE.2016.VMConfigurationVersion" ParentMonitorID="SHLib!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="HVMPELib!HyperV.MPE.2016.VMConfigurationVersion.MonitorType" ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings AlertMessage="HyperV.MPE.2016.VMConfigurationVersion.Monitor_AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateId7ff1d1dc4fdc4e0fbf7d3808f730249c" MonitorTypeStateID="Healthy" HealthState="Success"/>
<OperationalState ID="UIGeneratedOpStateIda2ad99b826004191aa2b47b969063097" MonitorTypeStateID="Critical" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime>00:00</SyncTime>
<HyperVHostName>$Target/Host/Host/Host/Property[Type="MSWinLib!Microsoft.Windows.Computer"]/PrincipalName$</HyperVHostName>
<VMName>$Target/Host/Property[Type="MSWinHVLib!Microsoft.Windows.HyperV.VirtualMachine"]/VirtualMachineName$</VMName>
</Configuration>
</UnitMonitor>