<Discovery ID="VKernel.CapacityAnalyzer.VmDymMemoryPerfDiscovery" Enabled="true" Target="SCVMM2012DiscoveryMP!Microsoft.SystemCenter.VirtualMachineManager.2012.HyperVHost" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="VKernel.CapacityAnalyzer.VmDynMemoryPerf">
<Property TypeID="VKernel.CapacityAnalyzer.VmDynMemoryPerf" PropertyID="Name"/>
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
</DiscoveryClass>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedScript.DiscoveryProvider">
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<ScriptName>VmDynMemoryDiscovery.js</ScriptName>
<Arguments>$MPElement$ $Target/Id$ $Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$ $Target/Property[Type="SCVMMLibraryMP!Microsoft.SystemCenter.VirtualMachineManager.VMHost"]/VMMId$</Arguments>
<ScriptBody><Script>var oAPI = WScript.CreateObject("MOM.ScriptAPI");
var oArgs = WScript.Arguments;
var SourceId = oArgs.Item(0);
var ManagedEntityId = oArgs.Item(1);
var ComputerName = oArgs.Item(2);
var VmmGuid = oArgs.Item(3);
var locator = WScript.CreateObject("WbemScripting.SWbemLocator");
var services = locator.ConnectServer(ComputerName, "root\\cimv2");
var wmiEnum = new Enumerator(services.ExecQuery("select * from meta_class where __Class = \"Win32_PerfFormattedData_BalancerStats_HyperVDynamicMemoryVM\"", "WQL", 0x20));
var oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceId, ManagedEntityId);
var classExists = false;
for (; !wmiEnum.atEnd(); wmiEnum.moveNext())
{
classExists = true;
}
if (classExists)
{
wmiEnum = new Enumerator(services.ExecQuery("select * from Win32_PerfFormattedData_BalancerStats_HyperVDynamicMemoryVM where CurrentPressure > 0", "WQL", 0x20));
for (; !wmiEnum.atEnd(); wmiEnum.moveNext())
{
var memObj = wmiEnum.item();
var oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='VKernel.CapacityAnalyzer.VmDynMemoryPerf']$")