🇬🇧 | 🇩🇪 | 🇫🇷 | 🇪🇸 | 🇨🇳 | 🇸🇦
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 WinRM de Windows: el parámetro de entrada de WSManSendShell es nulo o cero

Descripción

Este error generalmente ocurre durante las sesiones de administración remota de PowerShell (WinRM) cuando hay un desajuste, corrupción o deriva de configuración entre la máquina cliente y el host remoto. Significa que el cliente de la cáscara WinRM intentó enviar datos al punto final remoto, pero uno de los parámetros estructurales esenciales requeridos por la función API interna ( WSManSendShellInput ) faltaba, se corrompió o se evaluó a cero.

Las causas raíz más comunes incluyen:


Soluciones paso a paso

Sigue estas soluciones secuencialmente desde la máquina cliente (y, en su caso, en la máquina host) para resolver el problema.

Solución 1: Reiniciar y restablecer el servicio WinRM

El estado de ejecución corrompido en el servicio WinRM puede causar que los parámetros de la API no funcionen correctamente.

  1. Abre el menú Inicio, escribe cmd, haga clic derecho en Command Prompt, y seleccione Run as administrator.
  2. Detenga el servicio WinRM ejecutando el siguiente comando:
    net stop winrm
  3. Reinicie el servicio WinRM:
    net start winrm
  4. Ejecute la herramienta de configuración rápida para reparar los parámetros predeterminados rotos, los oyentes o las excepciones del cortafuegos:
    winrm quickconfig
  5. ¿ Qué tipo ? y (Sí) si se le solicita hacer cambios o crear un nuevo oyente WinRM.

Solución 2: Eliminar los límites de MaxShellsPerUser y MaxMemoryPerShellMB

If the remote shell process hits an allocation limit, it may fail to populate the parameters required by the WSManSendShellInput la función.

  1. Lanzamiento. PowerShell as an Administrator tanto en el cliente como en la máquina remota (si es accesible).
  2. Compruebe los parámetros de configuración existentes ejecutando:
    Get-Item WSMan:\localhost\Shell\*
  3. Aumentar el límite de memoria por shell para garantizar que los objetos complejos no se truncen en objetos nulos:
    Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048
  4. Aumentar el número de shells permitidos por usuario para evitar conflictos de sesiones simultáneas:
    Set-Item WSMan:\localhost\Shell\MaxShellsPerUser 30
  5. Reinicie el servicio WinRM para aplicar estos cambios inmediatamente:
    Restart-Service winrm

Solución 3: Reconstruir los oyentes WinRM

Si los oyentes predeterminados tienen propiedades dañadas, debe eliminarlas por completo y reconstruirlas para asegurarse de que los parámetros de la API coincidan con las especificaciones del sistema nativo.

  1. Abierto. Command Prompt as an administrator.
  2. Ver sus oyentes WinRM activos actuales ejecutando:
    winrm enumerate winrm/config/listener
  3. Elimine por completo los oyentes defectuosos usando este comando:
    winrm delete winrm/config/listener?Address=*+Transport=HTTP

    (Nota: Cambie HTTP a HTTPS si su infraestructura de red utiliza específicamente WinRM sobre SSL).

  4. Recrear la infraestructura de escucha a partir de plantillas de sistema limpias:
    winrm quickconfig

Solución 4: Corregir las variables de entorno y la ruta del sistema

The WinRM sub-system relies heavily on underlying system environment variables to process structural payload schemas. Missing entries like %SystemRoot% puede conducir a parámetros nulos.

  1. Presiona el... Windows Key + R, tipo sysdm.cpl, y golpear Enter para abrir las Propiedades del Sistema.
  2. Navegar hacia el Advanced Seleccione la pestaña y haga clic en Environment Variables el botón en la parte inferior.
  3. Bajo el... System variables sección, localizar la variable llamada Path y haga clic Edit.
  4. Ensure that the following default Windows paths are explicitly listed. If they are missing, click New añadir:
    • C:\Windows\system32
    • C:\Windows
    • C:\Windows\System32\Wbem
    • C:\Windows\System32\WindowsPowerShell\v1.0\
  5. Haga clic OK en todas las ventanas para guardar los cambios, luego reinicie su computadora.

Solución 5: Evitar temporalmente la inspección de SSL o de red

Las aplicaciones de seguridad o los balanceadores de carga de hardware pueden eliminar encabezados personalizados, haciendo que los argumentos de la API WSMan lleguen vacíos al punto final.

  1. Si está utilizando un servidor proxy, eludirlo temporalmente para direcciones de enrutamiento locales ejecutando esto en una ventana de PowerShell elevada:
    $env:no_proxy="localhost,127.0.0.1,your-remote-host-ip"
  2. Si el problema está aislado a una máquina de destino de confianza específica, añadirlo directamente a su cliente TrustedHosts lista para eliminar el filtrado de apretón de manos:
    Set-Item WSMan:\localhost\Client\TrustedHosts -Value "your-remote-host-name-or-IP" -Force
  3. Prueba la secuencia de conexión de tu caparazón remota de nuevo.

Para ayudar a identificar el problema más, ¿podría proporcionar algunos detalles más:

ERROR_WINRS_CLIENT_PULL_NULL_PARAM | ERROR_WINRS_CLIENT_CLOSERECEIVEHANDLE_NULL_PARAM | ERROR_WINRS_CLIENT_PUSH_NULL_PARAM | ERROR_WINRS_CLIENT_CLOSESENDHANDLE_NULL_PARAM | ERROR_WINRS_CLIENT_GET_NULL_PARAM

Puede haber algunos errores.. Learn Microsoft