为什么会发生这种情况
- Custom URI Misconfigurations: 传递给命令的终点或连接URI (统一资源识别器) 有语法错误或不支持的方案.
- Corrupted WinRM Configurations: 本地或远程 WinRM 收听器配置已受损或错误对齐.
- WS-Management Protocol Mismatches: 客户端试图使用未在目标服务器上注册或启用的远程 shell 类型或自定义插件配置.
- Corrupted System Files: 底层的 Windows 管理文件或依赖关系受损.
逐步修复问题
按照顺序执行这些解决方案. 在完成每个步骤后测试您的连接,以查看是否解决了问题.
步骤1:运行WinRM快速配置
这个实用程序将恢复默认的 WinRM 设置,启用收听器,并创建所需的防火墙异常.
- 按下 Start menu, 类型
cmd,右键按下 Command Prompt,并选择 Run as administrator. - 输入下面的命令并按下 Enter:
winrm quickconfig - 如果提示进行更改并启用服务,输入
y然后按下. Enter. - 键入以下命令来检查听器是否正确运行:
winrm e winrm/config/listener
步骤2:验证并重置连接URI
如果您正在运行特定的PowerShell脚本或命令 (如 Enter-PSSession 或是 New-PSSession ),自定义URI参数可能不正确.
- 确保您没有手动传递残疾人.
-ConnectionURI一个标准的 WinRM URI 看起来像这样:http://<ComputerName>:5985/wsman - 如果您使用的是自定义shell,请验证URI字符串是否严格遵守目标应用程序所要求的模式.
- 试着使用标准连接.
-ComputerName参数,而不是自定义URI参数,以查看默认 shell 是否工作:Enter-PSSession -ComputerName Target_Computer_Name
步骤3:将目标主机添加到可信托主机列表中
客户机将拒绝连接到不可信任的终端,除非它们被明确添加到本地配置中.
- 打开 PowerShell 作为一个管理员.
- 运行此命令来查看您当前的可靠主机:
Get-Item WSMan:\localhost\Client\TrustedHosts - 要信任一个特定的计算机,运行:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "Target_Computer_Name" -Force(注:您可以使用 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- 重新启动 WinRM 服务以应用更改:
Restart-Service WinRM
步骤4:修复损坏的WinRM插件和
如果一个自定义的远程 shell 注册被损坏,重置 shell 基础架构可以解决问题.
- 打开 Command Prompt 作为一个管理员.
- 运行此命令来恢复默认的 WinRM 配置:
winrm reset - 接下来,通过运行:
winrm e winrm/config/Shell - 确保默认的 shell URI (
http://microsoft.com没有被故障的自定义插件覆盖.
步骤5:运行系统文件检查器 (SFC)
如果负责处理WS管理请求的内部Windows组件受损,SFC工具将修复它们.
- 打开 Command Prompt 作为一个管理员.
- 输入下面的命令并按下 Enter:
sfc /scannow - 等到扫描完成100%.
- 重新启动您的计算机并再次尝试 WinRM 连接.
可能有一些错误.. Learn Microsoft