Microsoft 365 .Net Framework Rule

Microsoft.SystemCenter.M365.Rules.DotNetVersion (Rule)

Microsoft 365 .Net Framework Rule.

Knowledge Base article:

Summary

The rule checks the version of .NET Framework in the registry.

The rule generates Error Alert targeted to the Management Service if the version is below 4.5.

The messages are suppressed by means of a unique ID of the Management Service.

Causes

An error state is caused by not having .NET 4.5 (or later) installed.

Resolutions

Install .NET 4.5 (4.8 is recommended).

Element properties:

TargetMicrosoft.SystemCenter.ManagementService
CategoryAlert
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
RemotableTrue
Alert Message
.NET Framework 4.5 or newer has not been installed on Microsoft 365 Resource Pool computer
Microsoft 365 Management Pack requires .NET Framework 4.5 or newer installed on all Management Servers in Microsoft 365 Resource Pool. Please, update .NET Framework on this Management Server.

Member Modules:

ID Module Type TypeId RunAs 
RegistryData DataSource Microsoft.Windows.RegistryProvider Default
Filter ConditionDetection System.ExpressionFilter Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SystemCenter.M365.Rules.DotNetVersion" Enabled="false" Target="SC!Microsoft.SystemCenter.ManagementService">
<Category>Alert</Category>
<DataSources>
<DataSource ID="RegistryData" TypeID="Windows!Microsoft.Windows.RegistryProvider">
<ComputerName>.</ComputerName>
<RegistryAttributeDefinitions>
<RegistryAttributeDefinition>
<AttributeName>Framework45Installed</AttributeName>
<Path>SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Release</Path>
<PathType>1</PathType>
<AttributeType>0</AttributeType>
</RegistryAttributeDefinition>
</RegistryAttributeDefinitions>
<Frequency>900</Frequency>
</DataSource>
</DataSources>
<ConditionDetection ID="Filter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Boolean">Values/Framework45Installed</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="Boolean">false</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>2</Priority>
<Severity>2</Severity>
<AlertName/>
<AlertDescription/>
<AlertMessageId>$MPElement[Name='Microsoft.SystemCenter.M365.Rules.DotNetVersion.DotNetVersion45NotFound.AlertMessage']$</AlertMessageId>
<Suppression>
<SuppressionValue>$Target/Id$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>