🇬🇧 | 🇩🇪 | 🇫🇷 | 🇪🇸 | 🇨🇳 | 🇸🇦
No tenemos DLL pero tenemos:
Analista de archivos de Windows y antivirus rápido en línea

Una interfaz minimalista con búsqueda rápida, carga conveniente y una estructura de sección limpia.

🛡️🔍 Verifique rápidamente su archivo, sólo déjame en esta página.
Verificación de virus, hashes, verificación de firmas, arquitectura, información de IA.

Error de Windows: el cliente WinRM Shell no puede procesar la solicitud

Descripción del error

Este error suele ocurrir durante las tareas de gestión remota utilizando Windows Remote Management (WinRM) - ¿ Qué ? PowerShell Remoting. Indica que la sesión de conexión (shell handle) entre su computadora local y el servidor remoto se ha roto, desincronizado o dañado en medio de la operación.

Las causas más comunes incluyen:


Soluciones paso a paso

Siga estas soluciones para resolver el problema.

Corrección 1: Reinicie el servicio WinRM

Actualizar el servicio WinRM tanto en la máquina local como en la máquina remota generalmente borra las manijas no válidas.

  1. Abre la puerta. Start Menu, buscan cmd, haga clic derecho en él, y seleccione Run as administrator.
  2. Escriba el siguiente comando para detener el servicio y presione Enter:
    net stop winrm
  3. Escriba el siguiente comando para reiniciar el servicio y presione Enter:
    net start winrm

Corrección 2: Aumentar el número máximo de shells por usuario

Si está ejecutando scripts complejos, es posible que esté alcanzando el límite predeterminado para shells remotos concurrentes. Puede aumentar este valor en el servidor remoto.

  1. Abierto. PowerShell as an Administrator en la máquina de destino.
  2. Ejecute este comando para comprobar sus límites actuales:
    Get-Item WSMan:\localhost\Shell\MaxShellsPerUser
  3. Aumentar el límite (por ejemplo, fijarlo en 50) ejecutando:
    Set-Item WSMan:\localhost\Shell\MaxShellsPerUser 50

Solución 3: restablecer la sesión de PowerShell

Si este error aparece dentro de un script de PowerShell en ejecución prolongada, el objeto de sesión existente está muerto. Debe cerrar explícitamente la sesión rota y crear una nueva.

  1. Busque su variable de sesión en su script (por lo general llamado algo así como $session ) y de la Comisión).
  2. Añadir código para eliminar la sesión rota de forma segura:
    Remove-PSSession $session -ErrorAction SilentlyContinue
  3. Crear una nueva sesión antes de ejecutar el siguiente comando:
    $session = New-PSSession -ComputerName "RemoteComputerName"
    Invoke-Command -Session $session -ScriptBlock { YourCommand }

Corrección 4: Ajustar las configuraciones de MaxMemoryPerShellMB

La baja asignación de memoria en la máquina remota puede bloquear el proceso de trabajador anfitrión del shell WSMan, lo que resulta en un manejo no válido.

  1. Abierto. PowerShell as an Administrator en la máquina remota.
  2. Compruebe el límite de memoria actual por shell:
    Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB
  3. Aumente el límite de memoria a 2048 MB (2 GB) para asegurarse de que los scripts no se queden sin memoria:
    Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048
  4. Reinicie el servicio WinRM para aplicar los cambios:
    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

Puede haber algunos errores.. Learn Microsoft