我已经对这个问题感到沮丧了两天了,所以我最终决定在serverfault上询问这个问题。
我正在build立一个Windows实验室环境。 它有一个Win2012R2域控制器(srv001),我想添加另一台Win2012R2服务器到域(srv003)。 其实一切顺利 我给新的服务器一个静态的IP地址在DC的同一个子网,指向正确的DNS服务器,并将服务器添加到域。
但是,当我将新服务器添加到服务器pipe理器,我得到一个Kerberos错误:0x80090322。 我有一个相当长的错误信息,我会在下面发表。 我做了一些testing,发现我实际上能够使用Kerberos身份validation为服务器设置一个远程Powershell会话:
$s = New-PSSession -ComputerName srv003 -Authentication Kerberos $s | Enter-PSSession
这里没有问题。 我在远程服务器上运行了Enable-PSRemoting
,在那里也没有问题。
为什么服务器pipe理器不喜欢我的新服务器? 尤其是因为可以使用服务器pipe理器所抱怨的相同协议来设置远程Powershell。
属于错误代码0x80090322的错误消息:
configuration刷新失败,出现以下错误:由于以下错误,元数据无法从服务器中检索:WinRM无法处理请求。 使用Kerberos身份validation时发生错误代码0x80090322的以下错误:发生未知的安全错误。 可能的原因是:
检查上述问题后,请尝试以下操作:
要回到错误消息中编号的项目:
好吧,我终于明白了。 我再仔细看看远程服务器的事件日志。 它包含以下错误文本的错误:
Kerberos客户端 从服务器srv003 收到 KRB_AP_ERR_MODIFIED 错误。 目标名称是HTTP / srv003.rwwilden01.local。 这表明目标服务器无法解密客户端提供的票证。 当目标服务器主体名称(SPN)在目标服务正在使用的帐户以外的帐户上注册时,可能会发生这种情况。 确保目标SPN只在服务器使用的帐户上注册。 如果目标服务帐户密码与Kerberos密钥分发中心为该目标服务configuration的密码不同,也会发生此错误。 确保服务器和KDC上的服务都configuration为使用相同的密码。 如果服务器名称不完全合格,并且目标域(RWWILDEN01.LOCAL)与客户端域(RWWILDEN01.LOCAL)不同,请检查这两个域中是否有相同名称的服务器帐户,或使用完全限定的名称来识别服务器。
看来我在一个星期前通过SPN HTTP/srv003.rwwilden.local
添加了一个托pipe服务帐户。 我不知道为什么服务器pipe理器首先尝试这个目标名称,但显然这是行不通的。 有意义的,因为这个SPN与实际的服务器没什么关系。
在我删除服务帐户后,一切开始按我的意图工作。
我不久前遇到了这个问题,我用“setspn”工具指向了罪魁祸首。 通过阅读本文,我对SPN有了更深入的了解: http : //support.microsoft.com/default.aspx? scid=kb;EN-US;929650
有相同的错误,并尝试了许多不同的解 帮助的是使用明确的IPv4地址,而不是域名。
我无法添加评论(新的工作,新的帐户,没有点)的职位,我想这样我回复。 使用IP帮助/解决问题的原因是因为使用IP时不使用Kerberos。 只有在使用FQDN(或NBT名称,但是这只是因为附加域名使fqdn反正)时才会尝试使用限制。 一般来说,大多数Kerberos错误是因为命名或SPN没有设置或设置正确的服务所需。 除非你closures了严格的名称检查,否则cnames不能工作,即使在某些情况下也不能工作,所以我build议你至less在诊断的时候远离它们。 但是老实说,把这种东西拿出来的最好方法就是使用Wireshark(因为Windows日志和Curb没有那么有用)。 你会看到谈判,你会看到为什么失败,试图什么等等。另外,如果你启用事件查看器中的“分析和debugging”日志,你会得到额外的debugging日志,你可以启用更有帮助。 还是… Wireshark永远是你的朋友!