本站域名:http://goxia.maytide.net or http://sufan.maytide.net
移动设备请访问:http://goxia.maytide.net/m
转载文章,请务必保留出处与作者信息,未经许可严禁用于商业用途!
[WS2012]HOWTO: 解决 Windows Server 2012 Hyper-V 实时迁移时遇到的 0x80090303 故障
HOWTO: 解决 Windows Server 2012 Hyper-V 实时迁移时遇到的 0x80090303 故障
当我们在测试 Windows Server 2012 Hyper-V 实时迁移(如:无需共享存储的实时迁移)过程中可能会遇到 0x80090303 故障,错误如下图所示:
具体内容大致为“迁移源上的虚拟机迁移操作失败。无法验证源主机上的连接:指定的目标未知或无法达到(0x80090303)。”由于 0x80090303 故障与之前日志中提到的 0x8009030E 故障极为相似,如果不加注意我们便会按照实时迁移时 kerberos 权限委派的步骤进行排错解决,去为主机委派设置添加“Microsoft Virtual System Migration Service”服务类型。gOxiA 当初就走入了这个误区,当使用 ADUC 为 Hyper-V 主机去做委派时发现在主机委派服务类型中并未找到“Microsoft Virtual System Migration Service”。
检查 Hyper-V 主机事件日志发现在“应用程序和服务日志”-“Microsoft”-“Windows”-“Hyper-V-VMMS”-“Admin”下记录有错误的事件ID:14050,来源为:Hyper-V-VMMS。具体内容是“无法注册服务主体名称“Microsoft Virtual System Migration Service”。”
此外,还包含其他几个相关的 SPN(服务主体名称)错误日志:“Hyper-V Replica Service”、“Microsoft Virtual Console Service”。之后使用 setspn –l hostname 进行检查,发现当前主机确实缺少这些 SPN,而“Microsoft Virtual System Migration Service”是我们迁移虚机所必须的。
那么什么是 SPN 呢?!引用一篇微软官方 Blog 的解释:SPN 即“服务主体名称”,是一种名称,唯一标识一个服务实例。用来验证 Kerberos 身份验证的 SPN 的必须正确设置。SPN 是 Active Birectory 属性,但不暴露在 AD 的管理单元。那么 SPN 的作用是什么呢?!gOxiA 推荐这篇微软 Blog http://blogs.technet.com/b/crmchina/archive/2010/01/29/crm-spn.aspx 供大家参考,虽然与 Hyper-V 没有直接关系,但他们之间的概念是相通的,便于我们更好的理解该故障发生的原因。
要解决该实时迁移过程中遇到的 0x80090303 故障,我们只需要手工在 Hyper-V 主机上对“Microsoft Virtual System Migration Service”进行 SPN 注册即可。为此,我们需要用到 setspn –s spnname/hostname(and FQDN) NetBIOSName 命令行,参考命令行如下:
完成“Microsoft Virtual System Migration Service”的 SPN 注册后,我们便可以正常执行实时迁移,0x80090303 故障消失!按理说 SPN 的注册应该是自动的,但是为什么在 gOxiA 的实验环境下出现失败注册,可能跟 DC 是 SBS2011 有关,因为网上能找到类似的故障都是使用的 SBS2011 作为域控。当然也不排除其他可能存在的因素,在微软的 KB2761899 中就提及到了这个事件 ID,如果你也遇到这个问题,并排除 SBS2011 的原因,那么可以参考:http://support.microsoft.com/kb/2761899?wa=wsignin1.0 解决!
关于 SPN 自动注册失败的原因及解决办法,gOxiA 会继续关注,一有答案便会跟大家分享!目前的办法只有使用 setspn 命令手工注册来解决!
HOWTO:解决 WinRM 服务无法创建以下 SPN... 的 WinRM ID10154 警告
HOWTO:解决 WinRM 服务无法创建以下SPN… 的 WinRM ID10154 警告
当在 Windows Server 2008 R2 上安装 Active Directory 服务后,重新启动服务器会收到类似“WinRM 服务无法创建以下 SPN: /WSMAN/DC.contoso.com; WSMAN/DC。”的警告!来自于系统日志,事件来源:Windows Remote Management,事件ID:10154。具体的错误信息如下图所示。
根据事件属性中的提示使用 setspn.exe 创建了相关的 SPN 未果,又在网上使用中文关键词进行了查询仍没有任何收获,而使用英文时能找到几篇相关的帖子,根据提示进行了排错也都未能解决问题(让使用 Adsiedit 修改 CN=AdminSDHolder 的安全属性)。最后没辙,通过微软中文技术论坛向 Partner Support 寻求帮助,得到的解答与网上搜索到使用 Adsiedit 修改相关安全属性的方法一致,但是唯一不同的是要修改 CN=ServerName 的安全属性,赋予 Network Service 账号对该对象有”已验证的到服务主体名称的写入(Validated Write to service principal name)”的权限。由于解答中权限部分使用的是英文,害得 gOxiA 理解了半天,不过还好最终算是解决了!赋予了账号权限后,重新启动 WinRM 服务,会发现“WinRM ID10154”警告消失(出现的“WinRM ID10149”警告可以忽略)。
最后补充一下出现该警告的原因是:Network Service 在这个 Object 上没有相关的 ACE,所以 WinRM 没能建立日志中提到的 SPNs。