Failed to perform NLB cluster discovery due to a WMI error

Microsoft.Windows.NetworkLoadBalancing.Library.FailedToPerformDiscoveryDueToWmiError (Rule)

This rule will generate an alert if NLB cluster discovery fails due to a WMI error.

Knowledge Base article:

Summary

The NLB management pack failed to perform NLB cluster discovery due to a WMI error. The most likely cause of this error is the NLB WMI provider returning an error if the network adapter used by NLB is disabled.

Resolutions

Ensure that the network adapter used by NLB on this server is enabled. Also you can test the NLB WMI provider to performing the following steps on the NLB cluster member server:

1 - Launch wbemtest.exe

2 - Click on the "Connect" button and specify the following path: root\MicrosoftNLB and click the "Connect" button.

3 - Click on the "Query" button and specify the following WQL query "SELECT * FROM MicrosoftNLB_Node" and click the "Apply" button.

If this query fails, the discovery error is caused by a problem with the NLB WMI provider and you need to further troubleshoot it.

Once the error with WMI provider is fixed, the next time the discovery runs, it should run successfully. By default, the discovery runs once an hour.

Element properties:

TargetMicrosoft.Windows.Server.OperatingSystem
CategoryAlert
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Failed to perform NLB cluster discovery due to a WMI error
{0}
Event LogOperations Manager

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.EventProvider Default
Alert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.Windows.NetworkLoadBalancing.Library.FailedToPerformDiscoveryDueToWmiError" Enabled="true" Target="Windows!Microsoft.Windows.Server.OperatingSystem" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>Alert</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Operations Manager</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">6103</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Health Service Script</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">EventLevel</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="Integer">2</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[1]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">DiscoverWindowsNLBCluster.vbs</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.Windows.NetworkLoadBalancing.Library.FailedToPerformDiscoveryDueToWmiError.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>