解决Windows错误: WinRS客户端参数错误
这是一个错误. "The WinRS client cannot process the request. One of the parameters required for the WinrsGet function is null or zero." 当Windows远程 Shell (WinRS) 或Windows远程管理 (WinRM) 环境试图解析无效的命令结构,遇到受损的注册表组件或在本地客户机和远程终端之间握手阶段出现授权令牌不一致时发生.
一步一步的解决方案
按照这些顺序故障排除程序重新启动 WinRM 环境并修复受损的 API 参数.
步骤1: 运行命令提示符作为管理员
要操纵核心 Windows 远程 Shell 变量,您必须从一个升高的界面执行维修.
- 按下 Windows Key 在你的键盘上.
- 它们的类型 cmd 在搜索中.
- 按右键按一下 Command Prompt 在搜索结果中.
- 选择 Run as administrator 从上下文菜单.
步骤2:修复并重新启动WinRM服务
This reinitializes the Windows Remote Management state engine, resetting structural null 终点与他们的基线默认值相比.
- 在命令提示符中运行下面的命令来停止服务:
net stop winrm - 运行下面的命令来完全更新和构建标准收听器配置文件:
winrm quickconfig - When prompted to confirm the structural corrections and open firewall ports, type
Y然后按下. Enter.
步骤3:明确配置可信托主机数组
当因HTTP/HTTPS上的零化身份结构而导致参数握手失败时,明确设置目标终点可以绕过结构验证解析错误.
- 在高级命令提示符中,执行此字符串以信任所有网络目标 (适合孤立测试):
winrm set winrm/config/client @{TrustedHosts="*"} - 另外,如果您希望保持安全,请用明确的目标 IP 地址或主机名取代星号:
winrm set winrm/config/client @{TrustedHosts="YOUR_REMOTE_COMPUTER_NAME_OR_IP"}
步骤4:重新注册 WinRM 和 WinRS DLL 组件
如果底层的操作API遭受系统文件损坏,注册特定的动态链接库迫使Windows填写缺失的结构组件.
- Type each of the following registration commands into your Command Prompt one by one, pressing Enter 在每个文件字符串之后:
regsvr32 WsmSvc.dll regsvr32 WsmWmiPl.dll regsvr32 Winrscmd.dll - If dialog boxes appear validating the successful registration of the components, click OK 关闭它们.
步骤5:强制重置WinHTTP网络代理状态
客户端组件通过Windows超文本传输协议机制映射通信管道.一个偏向的本地代理对象可能导致空参数发送到远程主机.
- 检查是否有活跃代理设置掩盖空请求:
netsh winhttp show proxy - 通过运行: 清除代理环境地图完全回到直接连接参数
netsh winhttp reset proxy
步骤6:验证终端连接
- 重新启动计算机,将系统文件的更改提交到实时内核注册表.
- 打开命令环境,再试一次远程命令执行,以确认WinRS有效负载成功执行.
可能有一些错误.. Learn Microsoft