如何修复 "WinRM客户端无法处理请求,因为选择器名称不有效.更改选择器名称并重新尝试请求.
WinRM 错误"WinRM 客户端无法处理请求,因为选择器名称不有效"通常发生在 PowerShell 远程命令或 WS-Management 请求指定目标终端的错误,错误或不支持的资源 URI 或选择器过器时. 在连接字符串,终端配置或目标服务实例 (如特定的 WMI 类或 Exchange Server 路由) 不符合远程主机预期时,远程管理任务中经常发生这种情况.
错误的详细描述
WinRM (Windows Remote Management) uses Web Services for Management (WS-Management) to communicate with remote computers. When you issue a command, WinRM relies on Resource URIs (识别管理插件或服务的类型) 和 Selectors (它们就像一个键或索引,指向该资源的特定实例).
如果客户端应用程序通过了远程服务不识别的选择器,或者如果您的PowerShell脚本配置中存在语法不匹配,则远程WinRM收听器会拒绝这种特定错误的连接.常见的罪祸首包括:
- 终端配置或连接参数中的错误.
- 客户端管理工具和远程服务器模块之间的版本不匹配 (在混合交换环境或旧主动目录模块中非常常见).
- 在本地 WSMan 驱动器或远程 WinRM 收听器中出现腐败或配置错误.
逐步修复问题
按照这些步骤来诊断和解决问题.
步骤1:验证和更正连接URI/命令语法
如果您正在运行特定的脚本或工具 (如Exchange Online PowerShell或SCVMM),则错误通常是由错误的参数或过时的模块格式引起的.
- 检查执行的命令.
-ConnectionUri,-ConfigurationName,或者资源过器没有打字错误. - If you are using a specific management module (e.g., Exchange), ensure you are using the latest official module rather than manually constructing a
New-PSSession随着云端端点经常更改所需的选择器,
步骤2:重新启动WinRM服务
客户端或主机上的错误或卡住的 WinRM 服务实例可能会导致意外的选择器验证失败.
- 按下 Windows Key + X 并且选择 Terminal (Admin) 或是 PowerShell (Admin).
- 键入以下命令以本地重新启动 WinRM 服务:
Restart-Service WinRM -Force - 如果您可以访问远程机器,请在远程机器上执行同样的命令来更新其收听器.
步骤3:修复和重置 WinRM 配置
将 WinRM 配置重置到默认状态会删除任何受损的收听器设置或无效的默认选择器.
- 打开 PowerShell (Admin).
- 运行快速配置命令来修复服务和默认收听器:
winrm quickconfig - 如果提示进行更改或启用防火墙例外,键入
y然后按下. Enter. - 要执行 WinRM 配置更深层次的重置,运行:
winrm invoke restore winrm/config @{}
步骤4: 清除本地WSMan驱动器缓存
在 PowerShell 中缓存连接结构 WSMan: 清除这个状态迫使PowerShell重新构建有效的选择器定义.
- 打开 PowerShell (Admin).
- 导航到WSMan提供者根,以验证它正确加载:
cd WSMan:\localhost - 返回您的默认目录:
cd ~ - 完全重新启动您的PowerShell控制台,以丢弃任何缓存的远程会话配置文件.
第五步:更新管理工具和框架
如果在管理远程基础设施时出现此错误,则通常意味着客户机正在发送更新的远程服务器不再支持的过时选择器格式.
- 在本地机器上运行 Windows 更新,以确保您的 Windows 管理框架 (WMF) 和 PowerShell 组件完全更新.
- 如果使用专用模块,请通过PowerShell画廊更新它们:
Update-Module -Name <YourModuleName>
可能有一些错误.. Learn Microsoft