Comment corriger l'erreur Windows: "Le client WinRM ne peut pas traiter la demande"
L'erreur Windows Remote Management (WinRM) se produit généralement lorsque le système ne peut pas établir une connexion sécurisée entre l'ordinateur local et l'hôte distant. Ce guide explique pourquoi cela se produit et fournit des solutions claires et étape par étape pour résoudre le problème.
Vue d'ensemble des erreurs et causes courantes
Ce code d'erreur apparaît généralement lors de l'utilisation de PowerShell à distance, de la gestion de serveurs Hyper-V ou de l'exécution de scripts administratifs.
- Disabled WinRM Service: Le service n'est exécuté ni sur la machine locale ni sur la machine distante.
- Authentication Issues: Windows bloque la connexion parce que l'hôte distant n'est pas fiable.
- Network Location Profile: Le profil réseau est réglé sur "Public", ce qui bloque automatiquement le trafic WinRM.
- Firewall Blockage: Le pare-feu Windows ou un logiciel de sécurité tiers bloque le port 5985 (HTTP) ou le port 5986 (HTTPS).
- Incorrect Execution Policy: Les restrictions de PowerShell empêchent l'exécution de scripts à distance.
Réparations étape par étape
Suivez ces solutions dans l'ordre. Vous devez exécuter PowerShell ou l'invite de commande en tant qu'administrateur pour exécuter ces commandes.
Correction 1: Activer et démarrer le service WinRM
La première étape absolue consiste à s'assurer que le service WinRM est correctement exécuté et configuré pour démarrer automatiquement sur les deux ordinateurs.
- Appuie sur le... Windows Key, type
powershell, cliquez avec le bouton droit. Windows PowerShell, et sélectionnez Run as administrator. - Tapez la commande suivante pour configurer le service WinRM et appuyez Enter:
winrm quickconfig - If prompted to confirm changes (such as creating exceptions in the firewall or changing the service startup type), type
y(Oui) et appuyez Enter. - Ensuite, forcer le service WinRM à démarrer manuellement pour s'assurer qu'il est actif:
Start-Service WinRM - Réglez le type de démarrage du service sur Automatique pour qu' il s' exécute chaque fois que Windows démarre:
Set-Service WinRM -StartupType Automatic
Correction 2: Ajouter l'hôte distant à la liste des hôtes de confiance
Windows security rules block remote connections unless the target machine is explicitly trusted. You must configure the TrustedHosts les paramètres de votre ordinateur client.
- Ouvrez. Windows PowerShell en tant qu'administrateur.
- Pour permettre des connexions any computer (best for testing or internal private networks), type this command and press Enter:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" -Force - Si vous préférez ne faire confiance qu'à un ordinateur spécifique pour une meilleure sécurité, remplacez l'astérisque par l'adresse IP distante ou le nom d'hôte:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "192.168.1.50" -Force - Redémarrez le service WinRM pour appliquer la nouvelle configuration:
Restart-Service WinRM
Correction 3: Modifier le profil réseau en privé
WinRM refusera les connexions si votre connexion réseau active est classée comme "publique" parce que Windows bloque la sécurité dans les lieux publics.
- Ouvrez. Windows PowerShell en tant qu'administrateur.
- Vérifiez l' état actuel de votre réseau en exécutant:
Get-NetConnectionProfile - Regardez le...
NetworkCategorySi elle dit: Public, copier le nom indiqué à côté deName. - Changez le profil du réseau à Private en exécutant la commande suivante (remplacer
YourNetworkNameavec votre vrai nom de réseau):Set-NetConnectionProfile -Name "YourNetworkName" -NetworkCategory Private
Correction 4: autoriser les ports WinRM à travers le pare-feu Windows
Même si le service est en cours d'exécution, le pare-feu local peut abandonner activement les demandes de gestion entrantes ou sortantes.
- Ouvrez. Windows PowerShell en tant qu'administrateur.
- Exécutez cette commande pour créer une nouvelle règle de pare-feu permettant le trafic HTTP WinRM (port 5985):
New-NetFirewallRule -DisplayName "Allow WinRM HTTP" -Direction Inbound -LocalPort 5985 -Protocol TCP -Action Allow - Si votre environnement utilise des connexions HTTPS, ouvrez également le port 5986:
New-NetFirewallRule -DisplayName "Allow WinRM HTTPS" -Direction Inbound -LocalPort 5986 -Protocol TCP -Action Allow
Correction 5: Ajustez la stratégie d'exécution de PowerShell
Une politique d'exécution trop restrictive peut empêcher Windows de traiter les scripts nécessaires à l'initialisation d'une session distante.
- Ouvrez. Windows PowerShell en tant qu'administrateur.
- Vérifiez les paramètres actuels de votre stratégie d'exécution:
Get-ExecutionPolicy - Si la politique est réglée sur
Restricted, changez-le enRemoteSignedou...Bypasspour permettre des actions de gestion locales:Set-ExecutionPolicy RemoteSigned -Force
Vérification de la solution
Une fois que vous avez terminé les étapes ci-dessus, vous pouvez vérifier que le client WinRM peut traiter correctement les demandes. Exécutez la commande suivante dans PowerShell pour tester une connexion de boucle locale:
Test-WSMan
En cas de succès, la commande affichera des informations sur la version du service WS-Management et la version de la pile, ce qui signifie que votre client WinRM est à nouveau entièrement fonctionnel.
ERROR_WSMAN_INVALID_PUBLISHERS_TYPE | ERROR_WSMAN_CLIENT_INVALID_DELIVERY_RETRY | ERROR_WSMAN_CLIENT_NULL_ISSUERS | ERROR_WSMAN_CLIENT_NO_SOURCES | ERROR_WSMAN_INVALID_SUBSCRIBE_OBJECTIl y a peut-être des erreurs.. Learn Microsoft