Windows Server 2016存储副本配置失败(错误代码0x8009030e)求助
问题描述
提问者在两台Windows Server 2016 Hyper-V虚拟机间配置存储副本时遇到Kerberos认证错误,环境及问题详情如下:
- 两台服务器分属不同网络,通过运行RAS的Windows Server 2016虚拟路由器互联
- 执行的PowerShell脚本:
$SR = @{ SourceComputerName = 'Server-1' SourceRGName = 'RG-1' SourceVolumeName = "A:" SourceLogVolumeName = "B" DestinationComputerName = "Server-2" DestinationRGName = "RG-1" DestinationVolumeName = "A:" DestinationLogVolumeName = 'b:' ReplicationMode = 'Synchronous' } New-SRPartnership @SR
- 报错信息:
Unable to create replication group RG-1, detailed reason: WinRM cannot process the request. The following
error with errorcode 0x8009030e occurred while using Kerberos authentication: A specified logon session does not exist. It may
already have been terminated.
提问者已完成的排查项:
- 服务器间可正常ping通
- 均加入同一AD域,域控制器可访问
- DNS配置正确
- 已启用PSRemoting
- WinRM服务均运行
- 互相添加到对方的TrustedHosts列表
解决方案建议
结合错误代码(0x8009030e,登录会话不存在/已终止)和跨网络的环境,我推荐按以下顺序排查尝试:
1. 刷新Kerberos票证
首先怀疑是Kerberos票证过期或无效,在两台服务器上分别执行:
# 清除现有票证 klist purge # 重新获取域控制器的票证(替换成你的实际域名) klist get krbtgt/your-domain.com
完成后重新运行存储副本脚本,看看是否解决问题。
2. 确认WinRM的Kerberos认证开启
检查两台服务器的WinRM服务是否允许Kerberos认证:
Get-WSManInstance -ResourceURI winrm/config/service/auth -ComputerName localhost
如果输出里Kerberos的值不是true,执行以下命令开启:
Set-Item -Path WSMan:\localhost\Service\Auth\Kerberos -Value $true
3. 验证SPN注册是否完整
Kerberos认证依赖正确的服务主体名称(SPN)注册,在域控制器上执行以下命令检查两台服务器的SPN:
setspn -L Server-1 setspn -L Server-2
确保包含以下SPN(替换成你的服务器域名):
HOST/Server-1HOST/Server-1.your-domain.comWSMAN/Server-1WSMAN/Server-1.your-domain.com
如果缺少,手动注册(以Server-1为例):
setspn -A HOST/Server-1 Server-1 setspn -A HOST/Server-1.your-domain.com Server-1 setspn -A WSMAN/Server-1 Server-1 setspn -A WSMAN/Server-1.your-domain.com Server-1
注册完成后重启服务器再试。
4. 配置跨网络的Kerberos委派
因为两台服务器在不同网络,可能需要配置Kerberos约束委派:
- 打开Active Directory用户和计算机,找到两台服务器的计算机对象
- 右键→属性→「委派」标签
- 选择「信任此计算机来委派指定的服务」,点击「添加」
- 分别添加对方服务器的
cifs和winrm服务
5. 确认虚拟路由器的流量规则
虚拟路由器(RAS服务器)需要允许以下端口的双向流量:
- Kerberos:UDP/TCP 88
- WinRM:TCP 5985(HTTP)、TCP 5986(HTTPS)
检查RAS的防火墙和端口转发规则,确保这些流量能正常通过。
6. 使用FQDN替代NetBIOS名称
脚本里的SourceComputerName和DestinationComputerName换成服务器的完全限定域名(比如Server-1.your-domain.com),跨网络环境下NetBIOS名称解析可能不稳定,导致Kerberos认证失败。
备注:内容来源于stack exchange,提问作者marin1466

