Proveedor de eventos de WMI del subsistema de almacenamiento de Microsoft System Center Operations Manager

Microsoft.Windows.WmiEventProvider.InstanceFilterEventProvider (DataSourceModuleType)

Extensión para el origen de datos correspondiente al proveedor de eventos de WMI para el subsistema de almacenamiento que implementa el filtro de instancias basándose en un identificador único del objeto del subsistema de almacenamiento de destino.

Element properties:

TypeDataSourceModuleType
IsolationAny
AccessibilityInternal
RunAsSystem.PrivilegedMonitoringAccount
OutputTypeSystem.PropertyBagData

Member Modules:

ID Module Type TypeId RunAs 
WmiEventProviderDS DataSource Microsoft.Windows.WmiEventProvider Default
PA ProbeAction Microsoft.Windows.PowerShellPropertyBagProbe Default
CD ConditionDetection System.ExpressionFilter Default

Overrideable Parameters:

IDParameterTypeSelectorDisplay NameDescription
PollIntervalint$Config/PollInterval$Intervalo de sondeo (s)Intervalo de sondeo de consulta de eventos de WMI.

Source Code:

<DataSourceModuleType ID="Microsoft.Windows.WmiEventProvider.InstanceFilterEventProvider" Accessibility="Internal" RunAs="System!System.PrivilegedMonitoringAccount" Batching="false">
<Configuration>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="TargetInstanceUniqueID" type="xsd:string"/>
<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="PollInterval" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="WQLQuery" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="TimeoutSeconds" type="xsd:integer"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="PollInterval" Selector="$Config/PollInterval$" ParameterType="int"/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="WmiEventProviderDS" TypeID="Windows!Microsoft.Windows.WmiEventProvider">
<NameSpace>\\$Config/ComputerName$\root\Microsoft\Windows\Storage</NameSpace>
<Query>$Config/WQLQuery$</Query>
<PollInterval>$Config/PollInterval$</PollInterval>
</DataSource>
<ProbeAction ID="PA" TypeID="Windows!Microsoft.Windows.PowerShellPropertyBagProbe">
<ScriptName>StorageFaultEventProbe.ps1</ScriptName>
<ScriptBody><Script>

Param($SourceUniqueId, $FaultId, $Reason, $FaultingObjectDescription, $RecommendedActions, $PerceivedSeverity)

$api = New-Object -comObject "MOM.ScriptAPI"
$bag = $api.CreatePropertyBag()

$bag.AddValue("SourceUniqueId", $SourceUniqueId)
$bag.AddValue("FaultId", $FaultId)
$bag.AddValue("Reason", $Reason)
$bag.AddValue("FaultingObjectDescription", $FaultingObjectDescription)
$bag.AddValue("RecommendedActions", $RecommendedActions)
#$bag.AddValue("Alert Title", $Reason)

$bag.AddValue("PerceivedSeverity", $PerceivedSeverity);

#OM Alert severity
$alertSeverity = 1; # Default for OM would be warning
if($PerceivedSeverity -eq 2)
{
$alertSeverity = 0 #Information
}
elseif(($PerceivedSeverity -eq 3) -or ($PerceivedSeverity -eq 4))
{
$alertSeverity = 1 #Warning
}
elseif(($PerceivedSeverity -ge 5))
{
$alertSeverity = 2 #Warning
}

$bag.AddValue("OM Alert Severity", $alertSeverity);

$bag.AddValue("CompositeAlertId", $FaultId + ":" + $SourceUniqueId);
$api.LogScriptEvent("StorageFaultEventProbe.ps1", 8901, 0, "Storage fault recieved:`nfault id = $FaultId`nReason = $Reason");
$bag
</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>SourceUniqueId</Name>
<Value>$Data/Property[@Name='SourceUniqueId']$</Value>
</Parameter>
<Parameter>
<Name>FaultId</Name>
<Value>$Data/Property[@Name='FaultId']$</Value>
</Parameter>
<Parameter>
<Name>Reason</Name>
<Value>$Data/Property[@Name='Reason']$</Value>
</Parameter>
<Parameter>
<Name>FaultingObjectDescription</Name>
<Value>$Data/Property[@Name='FaultingObjectDescription']$</Value>
</Parameter>
<Parameter>
<Name>RecommendedActions</Name>
<Value>$Data/Property[@Name='RecommendedActions']$</Value>
</Parameter>
<Parameter>
<Name>PerceivedSeverity</Name>
<Value>$Data/Property[@Name='PerceivedSeverity']$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
<StrictErrorHandling>true</StrictErrorHandling>
</ProbeAction>
<ConditionDetection ID="CD" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='SourceUniqueId']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Config/TargetInstanceUniqueID$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<Composition>
<Node ID="CD">
<Node ID="PA">
<Node ID="WmiEventProviderDS"/>
</Node>
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.PropertyBagData</OutputType>
</DataSourceModuleType>