Cómo arreglarlo "El cliente WinRM Shell no puede procesar la solicitud. Uno de los parámetros requeridos para la función WSManSignalShell es nulo o cero".
Descripción del error
Este error se produce cuando el cliente de administración remota de Windows (WinRM) intenta enviar una señal de control (como terminar un proceso o cerrar una sesión) a un shell remoto, pero la API de administración de WS subyacente recibe un parámetro no válido, faltante o cero ( WSManSignalShell Esto suele indicar una incompatibilidad de configuración entre el cliente local y el host remoto, estados de sesión de shell dañados, componentes Windows PowerShell / WinRM obsoletos o políticas de seguridad de red restrictivas que bloquean la carga útil de señal específica.
Soluciones paso a paso
Paso 1: Reinicie el servicio WinRM
Un servicio WinRM fallido o congelado en la computadora local o en el servidor remoto puede causar fallas en la entrega de parámetros.
- Presione. Windows Key + X y seleccione Terminal (Admin) - ¿ Qué ? Command Prompt (Admin).
- Escriba el siguiente comando para detener el servicio y presione Enter:
net stop winrm - Escriba el siguiente comando para reiniciar el servicio y presione Enter:
net start winrm - Realice estos pasos tanto en su máquina local como en la máquina de destino remoto si es posible.
Paso 2: Actualizar o volver a registrar los componentes de gestión de WS
Si los archivos del sistema local responsables de las funciones WSMan no están registrados o están dañados, WinRM puede pasar parámetros nulos.
- Abierto. Command Prompt as Administrator.
- Ejecute el siguiente comando para restablecer la configuración de WinRM a sus configuraciones predeterminadas:
winrm quickconfig - ¿ Qué tipo ? Y y presiona. Enter si se le pide que haga cambios o que active las excepciones del cortafuegos.
Paso 3: Aumentar WinRM MaxShellsPerUser y MaxMemoryPerShellMB
Cuando un shell remoto se queda sin memoria asignada o excede el número permitido de shells concurrentes, deja caer o corrompe los paquetes de sesión entrantes, lo que lleva a valores nulos en las llamadas de funciones.
- Abierto. PowerShell as Administrator en la máquina remota (o localmente si se resuelven fallos locales).
- Compruebe los límites actuales ejecutando:
Get-Item WSMan:\localhost\Shell\* - Aumentar la memoria máxima asignada por shell para garantizar que la carga útil de la señal no se caiga:
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 1024 - Aumentar el número máximo de shells simultáneos permitidos por usuario:
Set-Item WSMan:\localhost\Shell\MaxShellsPerUser 30 - Reinicie el servicio WinRM utilizando los comandos del paso 1 para aplicar los cambios.
Paso 4: Añadir el host de destino a la lista de hosts de confianza
If the client does not fully trust the remote endpoint, certain advanced management signals like WSManSignalShell puede ser despojado debido a restricciones de seguridad.
- Abierto. PowerShell as Administrator en su máquina cliente local.
- Ejecute el siguiente comando para confiar en la máquina remota específica (reemplazar
REMOTE_IP_OR_NAMEcon la dirección IP o el nombre de host de su computadora remota real):Set-Item WSMan:\localhost\Client\TrustedHosts -Value "REMOTE_IP_OR_NAME" -Force(Nota: el uso de ` ` en lugar del nombre si desea confiar en todos los hosts para fines de prueba, aunque esto es menos seguro).*
- Reinicie el servicio WinRM en su máquina local.
Paso 5: Verifique la compatibilidad de PowerShell y.NET Framework
Una incompatibilidad entre la versión de PowerShell que se ejecuta en la máquina cliente y la versión que se ejecuta en el host remoto puede hacer que los objetos de parámetros serializados se desempaqueten incorrectamente como nulo.
- Compruebe su versión de PowerShell en ambas máquinas ejecutando:
$PSVersionTable.PSVersion - Si una máquina está ejecutando una versión obsoleta de Windows Management Framework (WMF) o.NET Framework, descargue e instale las últimas actualizaciones a través de Windows Update para asegurarse de que ambos terminales usen protocolos coincidentes.
Puede haber algunos errores.. Learn Microsoft