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: Member Modules:
Overrideable Parameters:
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>