Discover if Windows Computer is Virtual Machine (Infront)

Infront.Virtual.Machine.Discovery.IsVirtualMachine (Discovery)

Script-based discovery which sets the IsVirtualMachine property to TRUE for all Microsoft, VMware, Xen and VirtualBox virtual machines running a Windows operating system. Sets IsVirtulMachine = FALSE for physical machines. Also discovers a virtual motherboard oject hosted on the computer. This allows building groups of virtual machines based on their virtualization technology.

Element properties:

TargetMicrosoft.Windows.Computer
EnabledTrue
Frequency85100
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Infront.Virtual.Machine.Discovery.IsVirtualMachine.DataSource Default

Source Code:

<Discovery ID="Infront.Virtual.Machine.Discovery.IsVirtualMachine" Enabled="true" Target="Windows!Microsoft.Windows.Computer" ConfirmDelivery="false" Remotable="false" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Windows!Microsoft.Windows.Computer">
<Property TypeID="Windows!Microsoft.Windows.Computer" PropertyID="IsVirtualMachine"/>
</DiscoveryClass>
<DiscoveryClass TypeID="Infront.Virtual.Machine.HyperV.BaseBoard.Windows">
<Property TypeID="Infront.Virtual.Machine.BaseBoard" PropertyID="PhysicalHostPlatform"/>
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
</DiscoveryClass>
<DiscoveryClass TypeID="Infront.Virtual.Machine.VMware.BaseBoard.Windows">
<Property TypeID="Infront.Virtual.Machine.BaseBoard" PropertyID="PhysicalHostPlatform"/>
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
</DiscoveryClass>
<DiscoveryClass TypeID="Infront.Virtual.Machine.Xen.BaseBoard.Windows">
<Property TypeID="Infront.Virtual.Machine.BaseBoard" PropertyID="PhysicalHostPlatform"/>
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
</DiscoveryClass>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Infront.Virtual.Machine.Discovery.IsVirtualMachine.DataSource">
<IntervalSeconds>85100</IntervalSeconds>
<ComputerName>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<TimeoutSeconds>300</TimeoutSeconds>
<DiscoverVirtualBaseBoard>true</DiscoverVirtualBaseBoard>
<DetectCustomBIOS>true</DetectCustomBIOS>
</DataSource>
</Discovery>