🇬🇧 | 🇩🇪 | 🇫🇷 | 🇪🇸 | 🇨🇳 | 🇸🇦
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

This error occurs when the Windows Remote Management (WinRM) service loses track of the unique identifier (shell handle) assigned to your remote session. It signifies a communication breakdown between your local machine and the remote server.

Causas comunes


Soluciones paso a paso

Corrección 1: Reinicie el servicio WinRM

Actualizar el servicio WinRM tanto en las máquinas locales como en las remotas restablece el marco de conexión.

  1. Abre la puerta. Start Menu.
  2. ¿ Qué tipo ? cmd - ¿ Qué ? PowerShell.
  3. Haga clic derecho en la aplicación y seleccione Run as administrator.
  4. ¿ Qué tipo ? net stop winrm y presiona. Enter.
  5. Espera a que el servicio se detenga por completo.
  6. ¿ Qué tipo ? net start winrm y presiona. Enter.

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

Si el servidor remoto mata su manejo porque se queda sin recursos, aumentar el límite de asignación de shell resuelve el problema.

  1. Abierto. PowerShell como administrador en el servidor remoto.
  2. Compruebe el límite actual ejecutando:
    Get-Item WSMan:\localhost\Shell\MaxShellsPerUser
  3. Aumentar el límite a 50 corriendo:
    Set-Item WSMan:\localhost\Shell\MaxShellsPerUser 50
  4. Reinicie el servicio WinRM usando los comandos de Fix 1 para aplicar los cambios.

Solución 3: Ajustar las propiedades de tiempo de inactividad

Evite que el servidor cierre prematuramente su manija de shell durante períodos de inactividad.

  1. Abierto. PowerShell como administrador en el servidor remoto.
  2. Compruebe la configuración de tiempo de inactividad actual ejecutando:
    Get-Item WSMan:\localhost\Shell\IdleTimeout
  3. Establecer el valor del tiempo de espera en reposo en un umbral superior (valor en milisegundos, 7200000 es igual a 2 horas):
    Set-Item WSMan:\localhost\Shell\IdleTimeout 7200000
  4. Cierra y vuelve a abrir la consola de control remoto.

Solución 4: Conectar de nuevo y restablecer la variable de sesión

Si está ejecutando scripts a través de una variable de sesión almacenada (como $Session ), la variable se corrompe cuando la manija se invalida. Debe borrarla y reconstruirla.

  1. Elimine la variable de sesión rota en su script o consola:
    Remove-PSSession $Session
  2. Re-crear la sesión para obtener una manija de shell completamente nueva:
    $Session = New-PSSession -ComputerName "RemoteServerName"
  3. Introduzca la nueva sesión o ejecute sus comandos de nuevo:
    Enter-PSSession $Session
ERROR_WSMAN_SHELL_ALREADY_CLOSED | ERROR_WSMAN_CREATESHELL_NULL_STREAMID | ERROR_WSMAN_SHELL_INVALID_COMMAND_HANDLE | ERROR_WSMAN_RUNSHELLCOMMAND_NULL_ARGUMENT | ERROR_WSMAN_COMMAND_ALREADY_CLOSED

Puede haber algunos errores.. Learn Microsoft