数据访问服务 SPN 注册

Microsoft.SystemCenter.DataAccessService.SdkSpnRegistration (Rule)

在运行 System Center 数据访问服务的帐户的服务主体名称(SPN)未注册情况下发出警报的规则。

Knowledge Base article:

摘要

“System Center 数据访问”服务的服务主体名称 (SPN) 可能无法注册。 “System Center 数据访问”服务必须注册 SPN,操作控制台和其他 SDK 客户端才能使用 Kerberos 进行身份验证。

原因

大多数情况下,这是由于“System Center 数据访问”服务不具备在 Active Directory 内执行 SPN 注册所需的权限造成的。

解决方法

通过运行以下命令,检查现有 SPN 注册:

如果正确注册了 SPN,你应该看到以下结果:

如果未正确注册 SPN,请使用具有域管理员权限的帐户运行以下命令手动注册它们:

Element properties:

TargetMicrosoft.SystemCenter.ManagementDataAccessService
CategoryAlert
EnabledTrue
Event_ID26371
Event SourceOpsMgr SDK Service
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
RemotableTrue
Alert Message
数据访问服务 SPN 未注册
{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.SystemCenter.DataAccessService.SdkSpnRegistration" Enabled="true" Target="Microsoft.SystemCenter.ManagementDataAccessService" 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">26371</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">OpsMgr SDK Service</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>2</Priority>
<Severity>2</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.SystemCenter.DataAccessService.SdkSpnRegistration.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>