Fujitsu PRIMERGY Seed Discovery Rule for Windows Servers
Fujitsu.Servers.PRIMERGY.WindowsSeed.Discovery (Discovery)
Seed Discovery Rule for Fujitsu PRIMERGY Windows Servers. Any further server and components discovery is based on this first stage discovery outcome.
Knowledge Base article:
Element properties:
Object Discovery Details:
Member Modules:
Source Code:
<Discovery ID="Fujitsu.Servers.PRIMERGY.WindowsSeed.Discovery" Enabled="true" Target="Windows!Microsoft.Windows.Server.Computer" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Fujitsu.Servers.PRIMERGY.WindowsSeed.Server"/>
</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.Server"]$</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 (PYServerManufacturerVal Or (SystemManufacturerVal And SystemProductVal) Or (HardwareManufacturerVal And HardwareProductVal)) And
(PS1Version = 2.0 Or 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>
<!-- We found the fallback string. Accept discovery immediately. -->
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">Values/PYServerManufacturerVal</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>^[Ff][Uu][Jj][Ii][Tt][Ss][Uu]|^[Ff][Ss][Cc]$</Pattern>
</RegExExpression>
</Expression>
<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>
<Or>
<!-- PowerShell 1 version = 2.0 -->
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Values/PS1Version</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>2.0</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<!-- PowerShell 3 is installed on Server -->
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>Values/PS3InstalledOnServer</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>1</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Or>
</Expression>
</And>
</Expression>
</DataSource>
</Discovery>