解决Windows错误:WinRS客户端无法处理请求
这是一个错误. "The WinRS client cannot process the request. One of the parameters required is null or zero" 通常发生在尝试使用 Windows 远程 ( winrs ) 或Windows远程管理 ( WinRM ) 在远程计算机上执行命令,但本地客户端或远程主机上的配置受损,不完整或配置错误.此错误意味着连接成功初始化,但特定的命令结构或环境变量传递给远程系统缺乏必要的参数值.
这里是解决这个问题的步骤指南.
步骤1: 作为管理员运行命令提示符
为了修改 WinRM 设置,您必须执行所有具有更高权限的命令.
- 按下 Windows Key 在你的键盘上.
- 它们的类型 cmd.
- 按右键按一下 Command Prompt 在搜索结果中.
- 选择 Run as administrator.
- 点击 Yes 如果显示用户帐户控制 (UAC) 提示.
步骤2:重新启动WinRM服务
有时,WinRM服务进入故障状态,无法正确解析参数.重新启动将更新其配置内存.
- 在升高的命令提示符中,输入下面的命令,然后按下 Enter:
net stop winrm - 一旦服务停止,请通过输入此命令并按重新启动. Enter:
net start winrm
步骤3:重新配置和修复WinRM快速配置
如果注册表或服务配置中缺少或设置为零的特定参数,运行快速配置命令将自动检测和修复缺失的值.
- 在命令提示符中输入下面的命令,然后按下 Enter:
winrm quickconfig - The system will analyze your WinRM setup. If it finds any missing parameters or endpoints, it will ask you if it should fix them. Type y (为是) 并按下. Enter 对于任何出现的提示.
步骤4:验证 MaxShellsPerUser 和 MaxProcessesPerShell 的设置
当远程管理限制设置为零或由组策略限制时,此错误通常会触发. 您需要将这些属性重置到默认值.
- 通过运行: 检查您当前的 MaxShellsPerUser 配置
winrm get winrm/config/winrs - 看看这些值.
MaxShellsPerUser这里是我的家.MaxProcessesPerShell如果他们中的任何一个设置0它们会导致这种错误. - 重新设置
MaxShellsPerUser以其默认值 (通常为 30) 运行:winrm set winrm/config/winrs @{MaxShellsPerUser="30"} - 重新设置
MaxProcessesPerShell以其默认值 (通常为25) 运行:winrm set winrm/config/winrs @{MaxProcessesPerShell="25"}
步骤 5: 检查并重置可信托主机列表
如果您正在连接到未被明确信任的远程机器,则可能会丢失验证令牌所需的参数.
- To allow communication with the remote server safely, add the target machine to your TrustedHosts list. Replace
REMOTE_COMPUTER_NAME_OR_IP您的实际目标机器详情:winrm set winrm/config/client @{TrustedHosts="REMOTE_COMPUTER_NAME_OR_IP"} - 如果您在安全的测试环境中工作,并希望允许所有主机确保参数问题得到解决,您可以使用常识符:
winrm set winrm/config/client @{TrustedHosts="*"}
第六步:检查联系
在完成以上步骤后,测试 WinRS 客户端连接,以确保零参数错误得到解决.
- 运行一个简单的远程命令
hostname为了验证功能:winrs -r:REMOTE_COMPUTER_NAME_OR_IP hostname - 如果命令返回远程计算机的名字,问题就解决了.
可能有一些错误.. Learn Microsoft