Comment réparer "Le client WinRM ne peut pas traiter la requête. L'URI de la ressource n'est pas valide: il ne contient pas de clés, mais la classe sélectionnée n'est pas un singleton".
Dans le protocole WS-Management, un singleton class est une classe qui n'a jamais qu'une seule instance (par exemple, la configuration du système d'exploitation ou l'heure locale). Pour les classes singleton, l'URI de ressource suffit pour localiser la ressource. Cependant, pour les classes standard qui peuvent avoir plusieurs instances (comme les utilisateurs locaux, les adaptateurs réseau ou les services), vous devez fournir des clés spécifiques (comme un nom ou un identifiant) afin que WinRM sache exactement quelle instance vous souhaitez gérer. Si vous ciblez une classe multi-instance en utilisant un URI de base sans ces clés, WinRM rejette la demande avec cette erreur spécifique.
Réparations étape par étape
Selon la façon dont vous exécutez la commande, utilisez l'une des méthodes suivantes pour résoudre le problème:
Méthode 1: fournissez les clés requises dans la commande
Si vous utilisez Get-WSManInstance ou des cmdlets WSMan similaires, vous devez passer les touches d'instance spécifiques en utilisant le -SelectorSet paramètre.
- Ouvrez. PowerShell en tant qu'administrateur.
- Modifiez votre commande pour inclure la clé exacte de l'instance que vous voulez interroger.
- Incorrect (cause d' erreur):
Get-WSManInstance -ResourceURI "wmicimv2/Win32_Service" -ComputerName "RemotePC" - Correct (réparé avec SelectorSet):
Get-WSManInstance -ResourceURI "wmicimv2/Win32_Service" -SelectorSet @{Name="wuauserv"} -ComputerName "RemotePC"(Note: remplacer
"wuauserv"avec le nom de service ou la clé d'instance spécifique que vous devez cibler).
- Incorrect (cause d' erreur):
Méthode 2: basculer vers les Cmdlets CIM ou WMI (recommandé)
Si votre objectif est simplement de consulter ou de gérer des classes distantes d'instrumentation de gestion de Windows (WMI), l'utilisation de cmdlets CIM est beaucoup plus facile car ils gèrent la mise en forme d'instance automatiquement via WinRM.
- Ouvrez. PowerShell.
- Au lieu d'utiliser les cmdlets WS-Management bruts, utilisez
Get-CimInstance.- Commande fixe:
Get-CimInstance -ClassName Win32_Service -ComputerName "RemotePC"
- Commande fixe:
- Si vous voulez filtrer pour une instance spécifique sans création manuelle d'URI, ajoutez un argument de filtre:
- Commande fixe avec filtre:
Get-CimInstance -ClassName Win32_Service -Filter "Name = 'wuauserv'" -ComputerName "RemotePC"
- Commande fixe avec filtre:
Méthode 3: Régler la configuration des terminaux de connexion WinRM
Si cette erreur apparaît lors de l'utilisation d'un logiciel de gestion tiers ou d'un script automatisé, il se peut que le logiciel atteigne le mauvais point final de configuration par défaut.
- Ouvrez. PowerShell en tant qu'administrateur.
- Vérifiez la configuration actuelle de l'écoutant WinRM en exécutant:
winrm e winrm/config/listener - Réinitialisez la configuration WinRM à ses paramètres sécurisés par défaut pour supprimer les URI de routage personnalisés non valides:
winrm quickconfig -q - Redémarrez le service WinRM pour appliquer les modifications:
Restart-Service WinRM
Il y a peut-être des erreurs.. Learn Microsoft