修复 WinRM HTTP 400 错误请求错误
当 WinRM (Windows远程管理) 客户端试图建立远程连接时会出现 HTTP 400 错误请求错误,但目标服务器拒绝了输入请求的格式化,大小或头条.由于远程服务不提供额外的细节,这种错误通常来自本地配置不匹配,损坏的 WinRM 收听器,SPN (服务主体名称) 问题或过大 Kerberos 身份验证令牌.
这里有步骤指南来诊断和解决这个问题.
步骤1:运行WinRM快速配置工具
最快的解决损坏的收听器或基本服务配置问题是让Windows自动修复WinRM设置.
- 按下 Start 菜单,类型
cmd,右键按下 Command Prompt,并选择 Run as administrator. - 输入下面的命令并按下 Enter:
winrm quickconfig - 如果提示进行更改或配置防火墙异常,输入
y然后按下. Enter.
步骤 2: 清除 WinRM 客户端 WinRM 值得信赖的主机列表
一个错误配置的 TrustedHosts 设置或正确配置此列表可以解决通信故障.
- 打开 Command Prompt 作为一个管理员.
- 允许与任何主机暂时通信 (用于测试),运行:
winrm set winrm/config/client @{TrustedHosts="*"} - 另外,如果您想将其限制在您的特定目标服务器,则用目标服务器IP或主机名取代星号:
winrm set winrm/config/client @{TrustedHosts="TARGET_SERVER_NAME"}
步骤3:重新创建 WinRM HTTP/HTTPS 收听器
如果远程机器上的默认收听器受损或绑定到冲突端口,删除和重新创建它们可以修复底层 Web 服务路由.
- 打开 Command Prompt 作为一个管理员. target machine.
- 通过运行检查现有听众:
winrm enumerate winrm/config/listener - 删除破损的HTTP收听器:
winrm delete winrm/config/listener?Address=*+Transport=HTTP - 创建一个干净的HTTP收听器:
winrm create winrm/config/listener?Address=*+Transport=HTTP - 重新启动 WinRM 服务以应用更改:
net stop winrm && net start winrm
步骤4:为Kerberos认证调整MaxTokenSize
如果您通过域环境进行连接,并且您的用户帐户属于许多Active Directory组,则您的Kerberos验证令牌可能太大. 这会导致WinRM HTTP服务器拒绝该包作为"坏请求".
- 按下
Win + R, 类型regedit,然后按下 Enter 打开注册表编辑器. - 导航到以下路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters(注:如果Parameters键不存在,右键Kerberos, select New > Key, and name it Parameters). - 按下右键
Parameters关键,选择 New > DWORD (32-bit) Value. - 给出新的值.
MaxTokenSize. - 双击
MaxTokenSize设置基地为 Decimal, change the Value data to65535然后点击 OK. - 重新启动您的计算机以应用注册表更改.
步骤 5: 增加最大信封尺寸
有时通过WinRM传输的数据结构有效载荷超过默认允许的配置大小,导致即时HTTP 400错误.
- 打开 Command Prompt 作为一个管理员.
- 运行下面的命令,以将最大信封大小增加到1500 KB:
winrm set winrm/config @{MaxEnvelopeSizekb="1500"} - 检查您的远程连接是否是有效载荷限制造成问题.
可能有一些错误.. Learn Microsoft