Fujitsu PRIMERGY Seed Discovery Rule for Obsolete Windows Servers

Fujitsu.Servers.PRIMERGY.WindowsSeed.ObsoleteDiscovery (Discovery)

Seed Discovery Rule for obsolete Fujitsu PRIMERGY Windows Servers. Further discovery rules will remove these servers and components from SCOM upon update installation.

Knowledge Base article:

Summary

This discovery rule instantiates obsolete Fujitsu PRIMERGY Windows Servers via Registry Access for later removal of servers and components from SCOM upon update installation..

Element properties:

TargetMicrosoft.Windows.Server.Computer
EnabledTrue
Frequency14400
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.FilteredRegistryDiscoveryProvider Default

Source Code:

<Discovery ID="Fujitsu.Servers.PRIMERGY.WindowsSeed.ObsoleteDiscovery" Enabled="true" Target="Windows!Microsoft.Windows.Server.Computer" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Fujitsu.Servers.PRIMERGY.WindowsSeed.Obsolete"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.FilteredRegistryDiscoveryProvider">
<ComputerName>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<RegistryAttributeDefinitions>
<!-- Server Manufacturer from PYServerData (fallback for unsupported systems, e.g. VMs) -->
<RegistryAttributeDefinition>
<AttributeName>PYServerManufacturerVal</AttributeName>
<Path>SOFTWARE\Fujitsu\ServerView Suite\SCOM Integration\SVISCOM-Win\PYServerData\Manufacturer</Path>
<PathType>1</PathType>
<AttributeType>1</AttributeType>
</RegistryAttributeDefinition>
<!-- Server Manufacturer and Type from CurrentControlSet\Control\SystemInformation -->
<RegistryAttributeDefinition>
<AttributeName>SystemManufacturerVal</AttributeName>
<Path>System\CurrentControlSet\Control\SystemInformation\SystemManufacturer</Path>
<PathType>1</PathType>
<AttributeType>1</AttributeType>
</RegistryAttributeDefinition>
<RegistryAttributeDefinition>
<AttributeName>SystemProductVal</AttributeName>
<Path>System\CurrentControlSet\Control\SystemInformation\SystemProductName</Path>
<PathType>1</PathType>
<AttributeType>1</AttributeType>
</RegistryAttributeDefinition>
<!-- Server Manufacturer and Type from Hardware\Description\System\Bios -->
<RegistryAttributeDefinition>
<AttributeName>HardwareManufacturerVal</AttributeName>
<Path>Hardware\Description\System\Bios\SystemManufacturer</Path>
<PathType>1</PathType>
<AttributeType>1</AttributeType>
</RegistryAttributeDefinition>
<RegistryAttributeDefinition>
<AttributeName>HardwareProductVal</AttributeName>
<Path>Hardware\Description\System\Bios\SystemProductName</Path>
<PathType>1</PathType>
<AttributeType>1</AttributeType>
</RegistryAttributeDefinition>
<!-- Windows edition (HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion) -->
<RegistryAttributeDefinition>
<AttributeName>WinProductName</AttributeName>
<Path>Software\Microsoft\Windows NT\CurrentVersion\ProductName</Path>
<PathType>1</PathType>
<AttributeType>1</AttributeType>
</RegistryAttributeDefinition>
<RegistryAttributeDefinition>
<AttributeName>WinEditionID</AttributeName>
<Path>Software\Microsoft\Windows NT\CurrentVersion\EditionID</Path>
<PathType>1</PathType>
<AttributeType>1</AttributeType>
</RegistryAttributeDefinition>
<!-- PowerShell 1 is installed on Server -->
<RegistryAttributeDefinition>
<AttributeName>PS1InstalledOnServer</AttributeName>
<Path>SOFTWARE\Microsoft\PowerShell\1\Install</Path>
<PathType>1</PathType>
<AttributeType>1</AttributeType>
</RegistryAttributeDefinition>
<!-- PowerShell 1 version -->
<RegistryAttributeDefinition>
<AttributeName>PS1Version</AttributeName>
<Path>SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine\PowerShellVersion</Path>
<PathType>1</PathType>
<AttributeType>1</AttributeType>
</RegistryAttributeDefinition>
<!-- PowerShell 3 is installed on Server -->
<RegistryAttributeDefinition>
<AttributeName>PS3InstalledOnServer</AttributeName>
<Path>SOFTWARE\Microsoft\PowerShell\3\Install</Path>
<PathType>1</PathType>
<AttributeType>1</AttributeType>
</RegistryAttributeDefinition>
<!-- PowerShell 3 version -->
<RegistryAttributeDefinition>
<AttributeName>PS3Version</AttributeName>
<Path>SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine\PowerShellVersion</Path>
<PathType>1</PathType>
<AttributeType>1</AttributeType>
</RegistryAttributeDefinition>
</RegistryAttributeDefinitions>
<Frequency>14400</Frequency>
<ClassId>$MPElement[Name="Fujitsu.Servers.PRIMERGY.WindowsSeed.Obsolete"]$</ClassId>
<InstanceSettings>
<Settings>
<Setting>
<Name>$MPElement[Name="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Name>
<Value>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="Windows!Microsoft.Windows.Computer"]/DNSName$</Name>
<Value>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/DNSName$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="Windows!Microsoft.Windows.Computer"]/NetbiosComputerName$</Name>
<Value>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/NetbiosComputerName$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="Windows!Microsoft.Windows.Computer"]/NetbiosDomainName$</Name>
<Value>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/NetbiosDomainName$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="Windows!Microsoft.Windows.Computer"]/NetworkName$</Name>
<Value>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="Windows!Microsoft.Windows.Computer"]/DomainDnsName$</Name>
<Value>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/DomainDnsName$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="System!System.Entity"]/DisplayName$</Name>
<Value>$Target/Property[Type="System!System.Entity"]/DisplayName$</Value>
</Setting>
</Settings>
</InstanceSettings>
<!-- If Not Nano And ((SystemManufacturerVal And SystemProductVal) Or (HardwareManufacturerVal And HardwareProductVal)) And
(Not PS1Version = 2.0 And Not PS3InstalledOnServer) -->
<Expression>
<And>
<!-- No Nano in Windows edition -->
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">Values/WinEditionID</XPathQuery>
</ValueExpression>
<Operator>DoesNotMatchRegularExpression</Operator>
<Pattern>[Nn][Aa][Nn][Oo]</Pattern>
</RegExExpression>
</Expression>
<Expression>
<Or>
<Expression>
<And>
<!-- Found Fujitsu PRIMERGY/PRIMEQUEST in CurrentControlSet\Control\SystemInformation. Accept. -->
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">Values/SystemManufacturerVal</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>^[Ff][Uu][Jj][Ii][Tt][Ss][Uu]|^[Ff][Ss][Cc]$</Pattern>
</RegExExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">Values/SystemProductVal</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>^[Pp][Rr][Ii][Mm][Ee]</Pattern>
</RegExExpression>
</Expression>
</And>
</Expression>
<Expression>
<And>
<!-- Found Fujitsu PRIMERGY/PRIMEQUEST in Hardware\Description\System\Bios. Accept. -->
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">Values/HardwareManufacturerVal</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>^[Ff][Uu][Jj][Ii][Tt][Ss][Uu]|^[Ff][Ss][Cc]$</Pattern>
</RegExExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">Values/HardwareProductVal</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>^[Pp][Rr][Ii][Mm][Ee]</Pattern>
</RegExExpression>
</Expression>
</And>
</Expression>
</Or>
</Expression>
<Expression>
<And>
<!-- PowerShell 1 version Not 2.0 -->
<Expression>
<Not>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Values/PS1Version</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>2.0</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Not>
</Expression>
<!-- PowerShell 3 is not installed on Server -->
<Expression>
<Not>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>Values/PS3InstalledOnServer</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>1</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Not>
</Expression>
</And>
</Expression>
</And>
</Expression>
</DataSource>
</Discovery>