Windows 错误: WinRM Shell 客户端无法处理请求
描述
This error typically occurs when you try to establish a remote PowerShell session or execute WinRM commands. It signals a protocol mismatch or corruption in how data streams are identified between the client and the remote server.
基本原因通常是缺失或错误配置. WSMan (网络服务管理) 环境变量,一个过时的 PowerShell Core 安装,或损坏的注册表密钥,处理Windows远程管理服务的流配置.
逐步修复问题
按照顺序执行这些解决方案,直到错误得到解决.
方法1:修复PowerShell环境变量
这种错误的常见原因是损坏或缺失. PSModulePath 或是 WSMAN 在Windows更新或PowerShell Core安装后,相关变量.
- 按下 Windows Key + R 打开运行对话框.
- 它们的类型
sysdm.cpl然后按下. Enter 打开系统属性. - 按下 Advanced 这里是我的房间.
- 按下 Environment Variables 在底部的按.
- 在下面 System variables 寻找一个名为
PSModulePath. - 选择它并点击 Edit.
- 确保默认路径
C:\Windows\system32\WindowsPowerShell\v1.0\Modules\在场. - 如果您使用 PowerShell Core,请确保其模块路径也正确列出.
- 点击 OK 在所有窗口上保存更改.
- 请重新启动电脑.
方法 2: 重新设置 WinRM 配置
重新设置 WinRM 服务配置清除损坏的内部流,并恢复通信协议的默认设置.
- 按下 Windows Key, 类型
cmd,右键按下 Command Prompt,并选择 Run as administrator. - 键入下面的命令来完全禁用 WinRM 服务:
winrm delete winrm/config/listener?Address=*+Transport=HTTP - 按下 Enter.
- 以默认设置重新配置并启动 WinRM 服务,键入下面的命令:
winrm quickconfig - 按下 Enter.
- 当提示进行更改时,键入
y然后按下. Enter 对于所有确认.
方法3:更新或重新安装PowerShell核心
If you are encountering this error while using a modern version of PowerShell (PowerShell 7+), the specific WSManCreateShell 由于应用程序过时版本中的错误,API功能可能失败.
- 打开浏览器并导航到官方的Microsoft PowerShell GitHub发布页面.
- 下载最新的稳定安装包 (
.msi对于您的系统架构. - 运行安装程序并选择 Repair 如果它已经安装了,或进行清洁安装,如果更新.
- 确保选择. Register Windows Event Logging manifest 在安装过程中检查.
- 完成安装向导并重新启动您的机器.
方法4:修改WSMan注册表设置
如果由于权限或注册表损坏而导致流ID失败,强迫WinRM使用特定的托管模型可以绕过错误.
- 按下 Windows Key + R, 类型
regedit,然后按下 Enter 打开注册表编辑器. - 导航到下面的目录路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\ - 右键点击 WSMAN 文件,选择 New 然后点击 DWORD (32-bit) Value.
- 给出新的值.
NoHostingProcess. - 双击新创建的
NoHostingProcess价值并改变其 Value data 为了1. - 点击 OK.
- 关闭注册表编辑器并通过运行重新启动WinRM服务.
net stop winrm接下来是net start winrm在一个管理命令提示符中.
可能有一些错误.. Learn Microsoft