Cómo arreglarlo "El cliente WinRM no puede procesar la solicitud. El URI del recurso no es válido: no contiene claves, pero la clase seleccionada no es un singleton".
En el protocolo WS-Management, un singleton class es una clase que solo tiene una instancia (por ejemplo, la configuración del sistema operativo o la hora local). Para las clases individuales, la URI de recurso es suficiente para localizar el recurso. Sin embargo, para las clases estándar que pueden tener múltiples instancias (como usuarios locales, adaptadores de red o servicios), debe proporcionar claves específicas (como un nombre o ID) para que WinRM sepa exactamente qué instancia desea administrar. Si se dirige a una clase de múltiples instancias utilizando una URI básica sin estas claves, WinRM rechaza la solicitud con este error específico.
Soluciones paso a paso
Dependiendo de cómo esté ejecutando el comando, utilice uno de los siguientes métodos para resolver el problema:
Método 1: Proporcionar las claves requeridas en el comando
Si usted está usando Get-WSManInstance o cmdlets similares de WSMan, debe pasar las teclas de instancia específicas utilizando el -SelectorSet el parámetro.
- Abierto. PowerShell como Administrador.
- Modifique su comando para incluir la clave exacta de la instancia que desea consultar.
- Incorrecto (causa el error):
Get-WSManInstance -ResourceURI "wmicimv2/Win32_Service" -ComputerName "RemotePC" - Correcto (Fixado con SelectorSet):
Get-WSManInstance -ResourceURI "wmicimv2/Win32_Service" -SelectorSet @{Name="wuauserv"} -ComputerName "RemotePC"(Nota: sustituir
"wuauserv"con el nombre de servicio específico o la clave de instancia a la que debe dirigirse).
- Incorrecto (causa el error):
Método 2: Cambiar a los Cmdlets CIM o WMI (recomendado)
Si su objetivo es simplemente consultar o administrar clases remotas de instrumentación de administración de Windows (WMI), usar cmdlets CIM es mucho más fácil porque manejan el formato de instancias automáticamente a través de WinRM.
- Abierto. PowerShell.
- En lugar de utilizar los cmdlets de WS-Management en bruto, utilice
Get-CimInstance.- Comando fijo:
Get-CimInstance -ClassName Win32_Service -ComputerName "RemotePC"
- Comando fijo:
- Si desea filtrar para una instancia específica sin construcción manual de URI, agregue un argumento de filtro:
- Comando fijo con filtro:
Get-CimInstance -ClassName Win32_Service -Filter "Name = 'wuauserv'" -ComputerName "RemotePC"
- Comando fijo con filtro:
Método 3: Corregir la configuración del punto final de conexión WinRM
Si este error aparece al usar un software de gestión de terceros o un script automatizado, es posible que el software esté en el punto final de configuración predeterminada incorrecto.
- Abierto. PowerShell como Administrador.
- Compruebe la configuración actual del oyente WinRM ejecutando:
winrm e winrm/config/listener - Reinicie la configuración WinRM a sus configuraciones seguras predeterminadas para borrar URI de enrutamiento personalizado no válidos:
winrm quickconfig -q - Reinicie el servicio WinRM para aplicar los cambios:
Restart-Service WinRM
Puede haber algunos errores.. Learn Microsoft