Erreur WinRM dans Windows: Guide de dépannage
L' erreur. "The WS-Management service on the remote machine cannot process the shell request" typically occurs when you try to establish a remote PowerShell session (Enter-PSSession) or run a remote command (Invoke-Command) using Windows Remote Management (WinRM).
Description de l'erreur
Cette erreur signifie que le service WinRM sur l'ordinateur cible (à distance) a reçu votre demande de connexion, mais n'a pas réussi à créer un shell de commande pour vous.
- MaxShellsPerUser limit reached: La machine distante a une limite stricte sur le nombre de coquilles de commande distantes qu'un seul utilisateur peut ouvrir simultanément. Si les sessions précédentes n'ont pas été fermées correctement, le serveur bloque les nouvelles.
- MaxMemoryPerShellMB limit exceeded: Les processus exécutés à l'intérieur de votre session distante nécessitent plus de RAM que la limite configurée ne le permet sur la machine distante.
- WinRM service corruption: Le service WinRM ou ses auditeurs sont mal configurés ou suspendus sur la machine distante.
Réparations étape par étape
Vous devez appliquer ces correctifs sur le remote machine (l'ordinateur auquel vous essayez de vous connecter).
Correction 1: Augmenter le nombre maximal de shells par utilisateur
C'est la résolution la plus courante. Elle augmente le nombre de connexions distantes simultanées qu'un seul utilisateur peut maintenir.
- Ouvrez la porte. Start Menu sur l'ordinateur à distance.
- Quel type ?
powershell, cliquez avec le bouton droit. Windows PowerShell, et sélectionnez Run as administrator. - Vérifiez votre limite actuelle en exécutant cette commande:
Get-Item WSMan:\localhost\Shell\MaxShellsPerUser - Augmenter la limite (par exemple en la fixant à 50) en exécutant:
Set-Item WSMan:\localhost\Shell\MaxShellsPerUser 50 - Redémarrez le service WinRM pour appliquer les modifications:
Restart-Service WinRM
Correction 2: Augmenter la mémoire allouée par shell
Si vos scripts ou commandes consomment beaucoup de ressources, Windows pourrait tuer la requête de shell en raison de contraintes de mémoire.
- Ouvrez. Windows PowerShell comme un Administrator sur la télécommande.
- Vérifiez la limite de mémoire actuelle (généralement 1024 MB par défaut):
Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB - Augmentez la limite de mémoire à 2048 MB (2 GB) ou plus en exécutant:
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048 - Redémarrez le service WinRM pour appliquer la configuration:
Restart-Service WinRM
Correction 3: Éteignez les processus PowerShell orphelins
Si vous ne pouvez pas modifier les limites de configuration en ce moment, vous pouvez libérer des emplacements en terminant les sessions en arrière-plan bloquées.
- Ouvrez. PowerShell comme un Administrator sur la télécommande.
- Recherchez les processus PowerShell en arrière-plan qui s'exécutent sous votre compte utilisateur:
Get-Process wsmprovhost - Terminez de force tous les processus d'hôte distants cachés pour éliminer votre quota de shell:
Stop-Process -Name wsmprovhost -Force
Correction 4: reconfigurer et réinitialiser WinRM
Si les modifications de configuration ne résolvent pas le problème, l'état de l'écoutant WinRM pourrait être corrompu.
- Ouvrez. Command Prompt (cmd) ou PowerShell comme un Administrator.
- Exécutez l' utilitaire de configuration intégré pour réparer les écouteurs et les exceptions de pare-feu:
winrm quickconfig - Si vous êtes invité à apporter des modifications ou à aider à activer le service, tapez
yet appuyez. Enter.
Il y a peut-être des erreurs.. Learn Microsoft