首页 > 代码库 > KB: Operations Manager为什么刚装好就显示数据访问服务SPN未注册
KB: Operations Manager为什么刚装好就显示数据访问服务SPN未注册
对于我这种强迫症患者,服务账号能用域账号就不用本地的。微软最佳实践也是这么建议的,于是我在安装SCOM的时候就是按照下面这样来规划账户的。
用户名 | 用途 | 权限级别 | 类型 | 隶属于 |
acertwp\svcomda | OM数据访问服务和配置服务帐户 | 低权域用户 | 用户 | SQL本地管理员 |
acertwp\svcomw | OM数据仓库写入账户 | 低权域用户 | 用户 | SQL本地管理员 |
acertwp\svcomr | OM报表查询账户 | 低权域用户 | 用户 | SQL本地管理员 |
所以我在配置SCOM账户的时候是这样子的:
那么问题来了,为毛我才装好没多久的SCOM就报警了呢,我还没做啥坏事呢
警报描述如下:
The System Center Data Access service failed to register an SPN. A domain admin needs to add MSOMSdkSvc/SZSRVOM01v and MSOMSdkSvc/SZSRVOM01v.acertwp.com to the servicePrincipalName of CN=SZSRVOM01V,OU=Servers,DC=acertwp,DC=com
为什么会报错呢,因为我们每次重启机器/服务的时候都会做一个动作,System Center Data Access Service这个服务会尝试去找AD验证这个服务的SPN在域里面是否有注册。但是在域里面,一个低权限的Domain User是没有权限去注册SPN的,所以需要域管理员去做这件事情。
可是为什么还会报这个错呢,我在安装的时候用的账号是域管理员啊,这里其实是个BUG。而且这个BUG由来已久,已经伴随了OM 2012 、OM2012 SP1和 OM2012 R2整整三代产品了。大家仔细看这个警报的描述,这是让我用SZSRVOM01v这个计算机账户去注册SPN,可是我明明是用acertwp\svcomda这个账号去做服务账号的,要注册SPN也是为acertwp\svcomda这个账号注册。
我们可以通过下面这个命令来获取acertwp\svcomda这个账户注册的SPN(把账号替换成自己设置的账号):
C:\Users\administrator.ACERTWP>setspn L acertwp\svcomda
输出的内容应该是这个样子的
Registered ServicePrincipalNames 用于 CN=SVCOMDA,OU=Service,OU=MIS,DC=acertwp,DC =com: MSOMSdkSvc/SZSRVOM01v.acertwp.com MSOMSdkSvc/SZSRVOM01v
但是我们实际可能看到输出内容是这个样子的
Registered ServicePrincipalNames 用于 CN=SVCOMDA,OU=Service,OU=MIS,DC=acertwp,DC =com:
这时候就需要我们手工来添加这个SPN了。
然后我们来看下SZSRVOM01v这个计算机账户的SPN:
C:\Users\administrator.ACERTWP>setspn -l SZSRVOM01v
输出的内容是这样子的
Registered ServicePrincipalNames 用于 CN=SZSRVOM01V,OU=Servers,DC=acertwp,DC=com: MSOMHSvc/SZSRVOM01v.acertwp.com MSOMHSvc/SZSRVOM01V WSMAN/SZSRVOM01v WSMAN/SZSRVOM01v.acertwp.com TERMSRV/SZSRVOM01V TERMSRV/SZSRVOM01v.acertwp.com RestrictedKrbHost/SZSRVOM01V HOST/SZSRVOM01V RestrictedKrbHost/SZSRVOM01v.acertwp.com HOST/SZSRVOM01v.acertwp.com
既然知道了来龙去脉,我们要怎么修复这个问题呢?
首先我们得有一个域管理员的账号,然后我们用这个账号随意登录一台域里面的机器。打开CMD(管理员模式),执行以下两条命令:
setspn –s MSOMSdkSvc/SZSRVOM01v.acertwp.com ACERTWP\svcomda setspn -s MSOMSdkSvc/SCOM01 ACERTWP\svcomda
再回到最初的命令,查询acertwp\svcomda注册的SPN:
setspn –L acertwp\svcomda
这时候的输出就变成
Registered ServicePrincipalNames 用于CN=SVCOMDA,OU=Service,OU=MIS,DC=acertwp,DC =com: MSOMSdkSvc/SZSRVOM01v.acertwp.com MSOMSdkSvc/SZSRVOM01v
然后我们把警报关闭掉,不再报错了。。。这个世界终于安静了。
本文出自 “微软技术之路” 博客,请务必保留此出处http://autodiscover.blog.51cto.com/5759621/1582584
KB: Operations Manager为什么刚装好就显示数据访问服务SPN未注册