Microsoft Office 365 .Net Framework Rule

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

Microsoft Office 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.

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 Office 365 Resource Pool computer
Microsoft Office 365 Management Pack requires .NET Framework 4.5 or newer installed on all Management Servers in Microsoft Office 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.O365.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.O365.Rules.DotNetVersion.DotNetVersion45NotFound.AlertMessage']$</AlertMessageId>
<Suppression>
<SuppressionValue>$Target/Id$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>