解决Windows错误:WinRM加密消息体格式不有效
描述
这种错误发生在Windows远程管理 (WinRM) 客户端接收无法解密的加密消息时. 这意味着本地客户端和远程主机之间的加密或身份验证配置不匹配.最常见的原因包括相互冲突的Kerberos身份验证配置,SPN (服务主机名称) 不匹配,或机器之间的系统时间差异,从而破坏Kerberos门票验证过程.
逐步修复问题
在解决问题之前,按顺序执行下列解决方案.
解决方案1:同步系统时间
Kerberos 认证需要客户端和远程主机的系统时间在 5 分钟内同步.
- 按下 Start 菜单和类型
cmd. - 按下右键 Command Prompt 并且选择 Run as administrator.
- 输入以下命令与域或网络时间服务器同步时间:
w32tm /resync - 确保两台机器都显示出相同的时间.
解决方案2:将身份验证更改为基本 (仅测试)
暂时切换到基本身份验证可以绕过 Kerberos 加密问题,以确定 Kerberos 是否是根本原因.
- 打开一个升高的 Command Prompt (作为管理员运行) 在客户端和远程机器上.
- 在两台机器上运行此命令以允许基本身份验证:
winrm set winrm/config/client @{AllowUnencrypted="true"} winrm set winrm/config/client/auth @{Basic="true"} winrm set winrm/config/service/auth @{Basic="true"} - 测试您的连接. 如果有效,则问题存在于您的Active Directory Kerberos设置或SPN中.
解决方案3:重置 WinRM 配置
损坏的收听器配置可能导致加密不匹配.重置服务可以解决这些结构错误.
- 打开一个升高的 Command Prompt 在远程服务器上.
- 运行下面的命令来完全擦除和重新创建默认的 WinRM 配置:
winrm quickconfig -q - 重新启动 WinRM 服务以应用新设置:
net stop winrm && net start winrm
解决方案4:修复SPN (服务主体名称) 不匹配
如果远程服务器有重复或缺失的SPN,Kerberos无法正确加密有效载荷.
- 打开一个升高的 Command Prompt 在一个域控制器或有Active Directory工具的机器上.
- 使用以下命令检查是否有重复的SPN (取代
ServerName您的目标服务器名称):setspn -X - 如果为您的 WinRM 服务发现重复,请删除无效的重复条目:
setspn -D WSMAN/ServerName ServerName - 用以下方式重新注册正确的SPN:
setspn -A WSMAN/ServerName ServerName
可能有一些错误.. Learn Microsoft