When VMware started making physical computers…

Ok, so that’s a bit misleading. The actual issue is that ConfigMgr’s detection routine for some virtual machines is broken. This apparently started around May 2014 but I noticed it for the first time on a new ConfigMgr v1511 installation.

4 Comments

Troy L. MartinMarch 26, 2016

If LEFT JOIN is used, then ALL discovered machines (that are “virtual machines”) will be in the results even if the discovered machine is not a managed “client”. If only managed clients are desired in the results, then use INNER JOIN.

The INNER JOIN vs LEFT JOIN is an important point. However, in this case (at least In the environments I’ve tested on) it makes no difference because non-clients will have no data in the Computer_System table since they have no inventory. Thus the WHERE clause will exclude them even with a LEFT JOIN. A sub-select could be used to generate different results.

If we could stick to the SYSTEM table alone and use the IsVirtualMachine field then we could, in theory, detect non-ConfigMgr clients that were virtual, but that information would likely have to come from AD System Discovery.

It does not appear so. I no longer have access to the customer’s environment where I discovered the issue; however, my current customer has ConfigMgr 1802 and both Hyper-V and VMware hosted by Rackspace.

This is the query I just ran:select COL.IsVirtualMachine, CS.Manufacturer0, CS.Model0, count(COL.Name)
from _RES_COLL_SMSDM003 AS COL inner join v_GS_COMPUTER_SYSTEM as CS on COL.MachineID = CS.ResourceID
Where CS.Model0 like '%virtual%'
group by COL.IsVirtualMachine, CS.Manufacturer0, CS.Model0

I do see 4 “VMware Virtual Platform” models where IsVirtualMachine=0 and another 167 where IsVirtualMachine=1
All of the Hyper-V computers have IsVirtualMachine=1

This query will show the computer listselect CS.Manufacturer0, CS.Model0, COL.IsVirtualMachine, COL.ClientVersion, COL.DeviceOS, COL.Name
from _RES_COLL_SMSDM003 AS COL inner join v_GS_COMPUTER_SYSTEM as CS on COL.MachineID = CS.ResourceID
Where CS.Model0 like '%virtual%' order by COL.IsVirtualMachine, CS.Model0

We use cookies to ensure the best possible experience on our website. Detailed information on the use of cookies on this site is provided in our Privacy and Cookie Policy. Further instruction on how to disable our cookies can be found there.