🇬🇧 | 🇩🇪 | 🇫🇷 | 🇪🇸 | 🇨🇳 | 🇸🇦
Nous n'avons pas de DLL mais nous avons:
L'analyseur de fichiers Windows et l'antivirus rapide en ligne

Une interface minimaliste avec une recherche rapide, un téléchargement pratique et une structure de section propre.

🛡️🔍 Vérifiez rapidement votre dossier, cliquez sur cette page.
Vérifier les virus, les hachages, vérifier les signets, l'architecture, les informations sur l'IA.

Erreur Windows: le client WinRM Shell ne peut pas traiter la requête

Description de l'erreur

Cette erreur se produit généralement lors de tâches de gestion à distance en utilisant Windows Remote Management (WinRM) ou... PowerShell Remoting. Il indique que la session de connexion (shell handle) entre votre ordinateur local et le serveur distant est devenue cassée, désynchronisée ou corrompue au milieu de l'opération.

Les causes les plus courantes sont:


Réparations étape par étape

Suivez ces conseils pour résoudre le problème.

Correction 1: redémarrer le service WinRM

La mise à jour du service WinRM sur la machine locale et la machine distante efface généralement les poignées invalides.

  1. Ouvrez la porte. Start Menu, à la recherche de cmd, cliquez avec le bouton droit et sélectionnez Run as administrator.
  2. Tapez la commande suivante pour arrêter le service et appuyez Enter:
    net stop winrm
  3. Tapez la commande suivante pour redémarrer le service et appuyez Enter:
    net start winrm

Correction 2: Augmenter le nombre maximal de shells par utilisateur

Si vous exécutez des scripts complexes, vous pourriez atteindre la limite par défaut pour les shells distants simultanés. Vous pouvez augmenter cette valeur sur le serveur distant.

  1. Ouvrez. PowerShell as an Administrator sur l'appareil de destination.
  2. Exécutez cette commande pour vérifier vos limites actuelles:
    Get-Item WSMan:\localhost\Shell\MaxShellsPerUser
  3. Augmentez la limite (par exemple en la fixant à 50) en exécutant:
    Set-Item WSMan:\localhost\Shell\MaxShellsPerUser 50

Correction 3: Réétablissement de la session PowerShell

Si cette erreur apparaît dans un script PowerShell en cours d'exécution, l'objet de session existant est mort. Vous devez fermer explicitement la session cassée et en créer une nouvelle.

  1. Cherchez votre variable de session dans votre script (généralement nommé quelque chose comme $session ) et de l'Union européenne.
  2. Ajouter du code pour supprimer la session brisée en toute sécurité:
    Remove-PSSession $session -ErrorAction SilentlyContinue
  3. Créez une nouvelle session avant d' exécuter votre prochaine commande:
    $session = New-PSSession -ComputerName "RemoteComputerName"
    Invoke-Command -Session $session -ScriptBlock { YourCommand }

Correction 4: Ajustez les paramètres MaxMemoryPerShellMB

Une allocation de mémoire faible sur la machine distante peut faire écraser le processus de l'ouvrier hôte de la shell WSMan, ce qui entraîne une poignée invalide.

  1. Ouvrez. PowerShell as an Administrator sur la télécommande.
  2. Vérifiez la limite de mémoire actuelle par shell:
    Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB
  3. Augmentez la limite de mémoire à 2048 Mo (2 Go) pour s'assurer que les scripts ne manquent pas de mémoire:
    Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048
  4. Redémarrez le service WinRM pour appliquer les modifications:
    Restart-Service winrm
ERROR_WSMAN_CREATESHELL_NULL_STREAMID | ERROR_WSMAN_SHELL_INVALID_SHELL_HANDLE | ERROR_WSMAN_RUNSHELLCOMMAND_NULL_ARGUMENT | ERROR_WSMAN_COMMAND_ALREADY_CLOSED | ERROR_WSMAN_SENDSHELLINPUT_INVALID_STREAMID_INDEX

Il y a peut-être des erreurs.. Learn Microsoft