如何修复"WS管理服务无法处理请求,因为请求中的一个头是无效的.
没有.
This error typically occurs in Windows when executing PowerShell Remoting commands (such as Invoke-Command 或是 Enter-PSSession 当应用程序尝试使用 Windows 远程管理 (WinRM) 服务时,它表示 WS-Management SOAP 请求包包含一个不符合协议规范的头,或者客户端或主机上的 WinRM 服务配置已经受损,受限制或与最大请求大小限制不一致.
逐步修复问题
为了解决问题,请遵循以下步骤:
步骤1:重新启动WinRM服务
有时WS-Management服务会遇到处理请求头 temporary glitch.重新启动服务会更新其状态.
- 按下 Windows Key, 类型
cmd,右键点击 Command Prompt,并选择 Run as administrator. - 输入下面的命令来停止服务:
net stop winrm - 输入以下命令启动服务:
net start winrm
步骤2:修复 WinRM 配置 (快速配置)
运行快速配置工具将标准收听器重置,并启用默认防火墙例外.
- 打开 PowerShell as an Administrator (右键单击开始菜单 ->终端 (管理员) 或PowerShell (管理员)).
- 输入下面的命令,然后按Enter:
winrm quickconfig - 如果提示进行更改或启用防火墙异常,键入
y(是的) 然后按Enter.
步骤3:增加最大信封尺寸
如果请求有效负载或头结构太大 (通常是由于深度活跃目录组会员或广泛的Kerberos代币),WinRM将拒绝无效的头大小.增加封面大小可以解决这个问题.
- 打开 PowerShell as an Administrator.
- 运行下一个命令来检查当前配置值:
get-item WSMan:\localhost\MaxEnvelopeSizeKB - 通过运行这个命令 (设置为8192 KB是一个稳定的建议) 增加限制:
set-item WSMan:\localhost\MaxEnvelopeSizeKB 8192 - 重新启动 WinRM 服务以应用配置:
Restart-Service winrm
步骤4:配置可靠主机
如果您正在连接到不是域的一部分的远程机器,则客户机必须明确信任目的地目标头身份.
- 打开 PowerShell as an Administrator.
- 要暂时信任所有主机进行测试,运行:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value * -Force - 另一个选择是取代星号.
*用远程机器的特定IP地址或主机名来维护安全. - 重新启动 WinRM 服务:
Restart-Service winrm
步骤5:检查和调整注册表中的MaxFieldLength和MaxRequestBytes
如果 WinRM 通信通过 Windows HTTP 协议堆 (Http.sys) 管理的 HTTP/HTTPS 层,大 Kerberos 安全头可能会被截断.
- 按下 Windows Key + R, 类型
regedit然后按 Enter 打开注册表编辑器. - 导航到以下路径:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters - 找一个. MaxFieldLength 这里是我的家. MaxRequestBytes 在右边窗口. 如果它们不存在,右键单击一个空白空间,选择 New > DWORD (32-bit) Value,并相应地命名它们.
- 双击 MaxFieldLength 设置基地为 Decimal,并设置值数据为
65534. - 双击 MaxRequestBytes 设置基地为 Decimal,并设置值数据为
16777216. - 重新启动您的计算机,以便系统级网络配置生效.
可能有一些错误.. Learn Microsoft