QND.Hyperv2012R2.HyperV.Cluster.Node.Status.PT (ProbeActionModuleType)

Element properties:

TypeProbeActionModuleType
IsolationAny
AccessibilityInternal
RunAsDefault
OutputTypeSystem.PropertyBagData

Member Modules:

ID Module Type TypeId RunAs 
PassThru ProbeAction System.PassThroughProbe Default
Script ProbeAction Microsoft.Windows.ScriptPropertyBagProbe Default

Overrideable Parameters:

IDParameterTypeSelector
TimeoutSecondsint$Config/TimeoutSeconds$

Source Code:

<ProbeActionModuleType ID="QND.Hyperv2012R2.HyperV.Cluster.Node.Status.PT" Accessibility="Internal" Batching="false" PassThrough="false">
<Configuration>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="ClusterName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="VMsOnWrongHost" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="TimeoutSeconds" type="xsd:integer"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int"/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<ProbeAction ID="PassThru" TypeID="System!System.PassThroughProbe"/>
<ProbeAction ID="Script" TypeID="Windows!Microsoft.Windows.ScriptPropertyBagProbe">
<ScriptName>ClusterNodesStatusProbe.vbs</ScriptName>
<Arguments>$Config/ClusterName$ $Config/VMsOnWrongHost$</Arguments>
<ScriptBody><Script>'===================================================================================
' AUTHOR: Tao Yang
' Script Name: ClusterNodesStatusProbe.vbs
' DATE: 11/07/2012
' Version: 1.0
' COMMENT: - Script Check the status of cluster nodes
'===================================================================================
'ON ERROR RESUME NEXT
strComputer = Wscript.Arguments(0)
VMsOnWrongHost = Wscript.Arguments(1)
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()
Set objWMICluster = GetObject("winmgmts:\\" &amp; strComputer &amp; "\root\MSCluster")
bHealthyCluster = TRUE
WMIQuery = "select Name,State from MSCluster_Node"
Set colClusterNodes = objWMICluster.ExecQuery (WMIQuery)

For Each objClusterNode in colClusterNodes
IF objClusterNode.State &lt;&gt; 0 THEN
bHealthyCluster = FALSE
END IF
Next
'Overall result
Set oBag = oAPI.CreatePropertyBag()
oBag.AddValue "ClusterName", strComputer
oBag.AddValue "VMsOnWrongHost", VMsOnWrongHost
oBag.AddValue "Healthy", bHealthyCluster
oAPI.Return(oBag)
</Script></ScriptBody>
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="Script">
<Node ID="PassThru"/>
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.PropertyBagData</OutputType>
<TriggerOnly>true</TriggerOnly>
</ProbeActionModuleType>