SCEP Linux Real-time Protection Monitor Type

Microsoft.SCEP.Linux.RTPStatus.MonitorType (UnitMonitorType)

Element properties:

RunAsDefault
AccessibilityPublic
Support Monitor RecalculateTrue

Member Modules:

ID Module Type TypeId RunAs 
EventDS DataSource Microsoft.SCEP.Linux.SCXLog.RTPEvent.DS Default
OnDemandDS ProbeAction Microsoft.SCEP.Linux.ShellExecuteTriggerOnly.PA Default
OnDemandPS ProbeAction Microsoft.Windows.PowerShellPropertyBagProbe Default
DisabledCondition ConditionDetection System.ExpressionFilter Default
EnabledCondition ConditionDetection System.ExpressionFilter Default

Overrideable Parameters:

IDParameterTypeSelectorDisplay NameDescription
LogFilePathstring$Config/LogFile$SCEP Log File Path

Source Code:

<UnitMonitorType ID="Microsoft.SCEP.Linux.RTPStatus.MonitorType" Accessibility="Public">
<MonitorTypeStates>
<MonitorTypeState ID="Enabled" NoDetection="false"/>
<MonitorTypeState ID="Disabled" NoDetection="false"/>
</MonitorTypeStates>
<Configuration>
<xsd:element minOccurs="1" name="Host" type="xsd:string"/>
<xsd:element minOccurs="1" name="LogFile" type="xsd:string"/>
<xsd:element minOccurs="1" name="RegExpFilter" type="xsd:string"/>
<xsd:element minOccurs="1" name="WildcardHealthy" type="xsd:string"/>
<xsd:element minOccurs="1" name="WildcardCritical" type="xsd:string"/>
<xsd:element minOccurs="0" name="OnDemandParameter" type="xsd:string"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="LogFilePath" Selector="$Config/LogFile$" ParameterType="string"/>
</OverrideableParameters>
<MonitorImplementation>
<MemberModules>
<DataSource ID="EventDS" TypeID="Microsoft.SCEP.Linux.SCXLog.RTPEvent.DS">
<Host>$Config/Host$</Host>
<LogFile>$Config/LogFile$</LogFile>
<RegExpFilter>$Config/RegExpFilter$</RegExpFilter>
<WildcardFalse>$Config/WildcardCritical$</WildcardFalse>
<WildcardTrue>$Config/WildcardHealthy$</WildcardTrue>
</DataSource>
<ProbeAction ID="OnDemandDS" TypeID="Microsoft.SCEP.Linux.ShellExecuteTriggerOnly.PA">
<TargetSystem>$Config/Host$</TargetSystem>
<ShellCommand>/opt/microsoft/scep/sbin/scep_daemon --status</ShellCommand>
</ProbeAction>
<ProbeAction ID="OnDemandPS" TypeID="Windows!Microsoft.Windows.PowerShellPropertyBagProbe">
<ScriptName>ParseRTPStatus.ps1</ScriptName>
<ScriptBody><Script>
param ([string]$CmdOutput, [string]$ParameterName)

$api = new-object -comObject 'MOM.ScriptAPI'
$oBag = $api.CreatePropertyBag()
$nStatus = 1

if ($ParameterName)
{
if ($CmdOutput -ne $null)
{
[array]$varList = $CmdOutput.split([environment]::newline)
[datetime]$nDateTimeNow = get-date

$varList | ForEach-Object -process {

[array]$rLineItems = $_.split("=");
[string]$sName = $rLineItems[0]
[string]$sValue = $rLineItems[1]

if ($ParameterName -eq $sName)
{
if ("Disabled" -eq $sValue)
{
$nStatus = 0
}
else
{
if ("Enabled" -eq $sValue)
{
$nStatus = 1
}
}
}
}
}
}

$oBag.AddValue("Status", $nStatus)
$oBag
Remove-variable api
Remove-variable oBag
</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>CmdOutput</Name>
<Value>$Data/WsManData$</Value>
</Parameter>
<Parameter>
<Name>ParameterName</Name>
<Value>$Config/OnDemandParameter$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>600</TimeoutSeconds>
</ProbeAction>
<ConditionDetection ID="EnabledCondition" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>Property[@Name='Status']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>1</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="DisabledCondition" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>Property[@Name='Status']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>0</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="Enabled">
<Node ID="EnabledCondition">
<Node ID="EventDS"/>
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="Disabled">
<Node ID="DisabledCondition">
<Node ID="EventDS"/>
</Node>
</RegularDetection>
</RegularDetections>
<OnDemandDetections>
<OnDemandDetection MonitorTypeStateID="Enabled">
<Node ID="EnabledCondition">
<Node ID="OnDemandPS">
<Node ID="OnDemandDS"/>
</Node>
</Node>
</OnDemandDetection>
<OnDemandDetection MonitorTypeStateID="Disabled">
<Node ID="DisabledCondition">
<Node ID="OnDemandPS">
<Node ID="OnDemandDS"/>
</Node>
</Node>
</OnDemandDetection>
</OnDemandDetections>
</MonitorImplementation>
</UnitMonitorType>