WUGProcessUnitMonitorType (UnitMonitorType)

Element properties:

RunAsDefault
AccessibilityPublic
Support Monitor RecalculateFalse

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.WmiProvider Default
NotRunningExpression ConditionDetection System.LogicalSet.ExpressionFilter Default
RunningExpression ConditionDetection System.LogicalSet.ExpressionFilter Default

Overrideable Parameters:

IDParameterTypeSelector
Frequencyint$Config/Frequency$
ProcessNamestring$Config/ProcessName$

Source Code:

<UnitMonitorType Accessibility="Public" ID="WUGProcessUnitMonitorType">
<MonitorTypeStates>
<MonitorTypeState ID="Running"/>
<MonitorTypeState ID="NotRunning"/>
</MonitorTypeStates>
<Configuration>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ComputerName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ProcessName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Frequency" type="xsd:integer"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Frequency" Selector="$Config/Frequency$" ParameterType="int"/>
<OverrideableParameter ID="ProcessName" Selector="$Config/ProcessName$" ParameterType="string"/>
</OverrideableParameters>
<MonitorImplementation>
<MemberModules>
<DataSource TypeID="Windows!Microsoft.Windows.WmiProvider" ID="DS">
<NameSpace>\\$Config/ComputerName$\root\cimv2</NameSpace>
<Query>SELECT Name FROM Win32_process Where Name="$Config/ProcessName$" or Name="System Idle Process"</Query>
<Frequency>$Config/Frequency$</Frequency>
</DataSource>
<ConditionDetection TypeID="System!System.LogicalSet.ExpressionFilter" ID="RunningExpression">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Name']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Config/ProcessName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<EmptySet>Passthrough</EmptySet>
<SetEvaluation>Any</SetEvaluation>
</ConditionDetection>
<ConditionDetection TypeID="System!System.LogicalSet.ExpressionFilter" ID="NotRunningExpression">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Name']</XPathQuery>
</ValueExpression>
<Operator>NotEqual</Operator>
<ValueExpression>
<Value Type="String">$Config/ProcessName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<EmptySet>Passthrough</EmptySet>
<SetEvaluation>All</SetEvaluation>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="Running">
<Node ID="RunningExpression">
<Node ID="DS"/>
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="NotRunning">
<Node ID="NotRunningExpression">
<Node ID="DS"/>
</Node>
</RegularDetection>
</RegularDetections>
</MonitorImplementation>
</UnitMonitorType>