Error WinRM de Windows: Guía de solución de problemas
El error. "The WS-Management service on the remote machine cannot process the shell request" typically occurs when you try to establish a remote PowerShell session (Enter-PSSession) or run a remote command (Invoke-Command) using Windows Remote Management (WinRM).
Descripción del error
Este error significa que el servicio WinRM en la computadora de destino (remota) recibió su solicitud de conexión, pero no pudo crear un shell de comandos para usted.
- MaxShellsPerUser limit reached: La máquina remota tiene un límite estricto en la cantidad de shells de comandos remotos que un solo usuario puede abrir simultáneamente. Si las sesiones anteriores no se cerraron correctamente, el servidor bloquea las nuevas.
- MaxMemoryPerShellMB limit exceeded: Los procesos que se ejecutan dentro de su sesión remota requieren más RAM de lo que el límite configurado permite en la máquina remota.
- WinRM service corruption: El servicio WinRM o sus oyentes están mal configurados o suspendidos en la máquina remota.
Soluciones paso a paso
Usted debe aplicar estas correcciones en el remote machine (la computadora a la que se está tratando de conectar). Inicie sesión en ella directamente o a través del escritorio remoto (RDP).
Corrección 1: Aumentar el número máximo de shells por usuario
Esta es la resolución más común, aumenta el número de conexiones remotas simultáneas que un solo usuario puede mantener.
- Abre la puerta. Start Menu en la computadora remota.
- ¿ Qué tipo ?
powershell, haga clic derecho en Windows PowerShell, y seleccione Run as administrator. - Compruebe su límite actual ejecutando este comando:
Get-Item WSMan:\localhost\Shell\MaxShellsPerUser - Aumentar el límite (por ejemplo, fijarlo en 50) ejecutando:
Set-Item WSMan:\localhost\Shell\MaxShellsPerUser 50 - Reinicie el servicio WinRM para aplicar los cambios:
Restart-Service WinRM
Corrección 2: Aumentar la memoria asignada por shell
Si sus scripts o comandos consumen muchos recursos, Windows podría matar la solicitud de shell debido a limitaciones de memoria.
- Abierto. Windows PowerShell como un Administrator en la máquina remota.
- Compruebe el límite de memoria actual (generalmente 1024 MB por defecto):
Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB - Aumente el límite de memoria a 2048 MB (2 GB) o más ejecutando:
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048 - Reinicie el servicio WinRM para aplicar la configuración:
Restart-Service WinRM
Solución 3: Eliminar los procesos huérfanos de PowerShell
Si no puede cambiar los límites de configuración ahora mismo, puede liberar ranuras terminando las sesiones de fondo atascadas.
- Abierto. PowerShell como un Administrator en la máquina remota.
- Busque los procesos de PowerShell de fondo que se ejecutan bajo su cuenta de usuario:
Get-Process wsmprovhost - Terminar por la fuerza todos los procesos de hosts remotos ocultos para limpiar su cuota de shell:
Stop-Process -Name wsmprovhost -Force
Corrección 4: Reconfigurar y restablecer WinRM
Si los cambios de configuración no resuelven el problema, el estado del oyente WinRM podría estar dañado.
- Abierto. Command Prompt (cmd) o PowerShell como un Administrator.
- Ejecute la utilidad de configuración incorporada para reparar escuchas y excepciones de cortafuegos:
winrm quickconfig - Si se le pide hacer cambios o ayudar a habilitar el servicio, escriba
yy presiona. Enter.
Puede haber algunos errores.. Learn Microsoft