如何修复 "WinRS 客户端无法处理请求. WinrsCloseReceiveHandle 函数所需的参数为 null 或零".
没有.
This error typically occurs when using Windows Remote Management (WinRM) or Windows Remote Shell (WinRS) to execute commands on a remote machine. The message "The WinRS client cannot process the request. The parameter required for the WinrsCloseReceiveHandle function is null or zero" 表示协议不匹配,受损的会话状态,或在本地客户端和远程主机之间处理内存指针/处理器的失败.它经常在特定的Windows更新更改WinRM安全行为后触发,当WS管理限制 (如MaxShellsPerUser或MaxMemoryPerShellMB) 超过时,或者当网络流中存在活跃的中断,提前关闭处理器时.
逐步修复问题
按照这些步骤来解决问题.
方法1:重新启动 WinRM 服务
客户端或主机上卡住或受损的 WinRM 会话处理器是最常见的原因.重启服务可以清除这些处理器.
- 打开门 Start Menu, 类型
cmd,右键按下 Command Prompt,并选择 Run as administrator. - 键入下面的命令来停止服务,然后按下 Enter:
net stop winrm - 键入下面的命令重新启动服务,然后按下 Enter:
net start winrm注意:如果您有访问权限,请在本地客户机和远程目标机上执行此操作.
方法2:增加 WinRM 配置配额
如果远程 shell 没有分配的内存或允许的并发shell,它会突然放下手柄,导致零参数错误.
- 打开 Command Prompt 作为一个管理员. remote target machine.
- 运行下一个命令来检查您当前的 WinRM 配置限制:
winrm get winrm/config/winrs - 通过执行这个命令 (设置为2048 MB) 增加每 shell 的内存限制:
winrm set winrm/config/winrs @{MaxMemoryPerShellMB="2048"} - 增加每位用户允许的同时使用的最大数量,以确保手柄不会被强制关闭:
winrm set winrm/config/winrs @{MaxShellsPerUser="30"} - 重新启动 WinRM 服务以应用更改:
net stop winrm && net start winrm
方法3:维修和重新注册 WinRM 组件
Corrupted registry entries or system files related to the Windows Remote Shell can cause API functions like WinrsCloseReceiveHandle 接收零参数.
- 打开 Command Prompt 作为一个管理员.
- 运行Windows资源检查工具来修复丢失或损坏的系统文件:
sfc /scannow - 等待扫描完成. 如果发现并修复错误,请重新启动计算机.
- 接下来,通过运行将 WinRM 配置重置到默认的安全状态:
winrm quickconfig它们的类型
y(是的) 如果提示进行架构更改或打开防火墙例外.
方法4:更新网络适配器驱动程序并禁用TCP卸载
网络卡上的网络包腐败或优化功能可能会提前终止连接流,使手柄为null.
- 按下右键 Start Menu 并且选择 Device Manager.
- 扩大 Network adapters 部分.
- Right-click your primary network connection adapter (Ethernet or Wi-Fi) and select Properties.
- 让我们去看看. Advanced 这里是我的房间.
- 找到了 IPv4 Checksum Offload, Large Send Offload (LSO),以及 TCP Checksum Offload 设置它们的值为 Disabled.
- 点击 OK 保存设置并重新启动网络连接.
方法 5: 清除冲突的Windows更新缓存
如果此问题在最近的 Windows 质量更新后立即出现,那么该特定更新包中的已知错误可能会影响 WinRS API 二进制文件.
- 打开 Command Prompt 作为一个管理员.
- 通过运行检查最近安装的更新:
wmic qfe list brief /format:table - 识别错误发生前安装的 KB 识别号码.
- 使用以下命令卸载问题更新 (取代
1234567有实际的 KB 号):wusa /uninstall /kb:1234567 - 重新启动您的系统并尝试再次运行您的 WinRS 命令.
可能有一些错误.. Learn Microsoft