One customer of ours reported me what seemed a weird issue. The IsVirtualMachine property of the Windows Computer class seemed not to be discovered.
To a further analysis we got evidence of the following:
- all virtual machines are correctly identified
- physical hosts sometimes discover the property (set to false) sometimes not
The property is discovered by two distinct discovery workflows defined in Microsoft.SystemCenter.Internal. Both are based on a WmiProviderWithClassSnapshotDataMapper type that uses a WMI query similar to the following: select * from Win32_Baseboard where manufacturer = “Microsoft Corporation”.
It turned out that physical servers often don’t have any instance for this WMI class, so the WMI discovery doesn’t return any match and in turn the IsVirtualMachine property it is not discovered.
Two issues here:
- WMI is far from being reliable, it is the first failure cause for SCCM deployments as well. Microsoft needs to get it right in reliability and performance.
- The discovery is poor since doesn’t take into account the case of Win32_BaseBoard returning no instances
To address the issue we have just two ways:
- Base any logic on IsVirtualMachine <> true to select physical hosts
- Rewrite the discovery
At this time the former is good enough.
This posting is provided "AS IS" with no warranties, and confers no rights.