Windows WinRM-Fehler: Anleitung zur Fehlerbehebung
Der Fehler. "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).
Beschreibung des Fehlers
Dieser Fehler bedeutet, dass der WinRM-Dienst auf dem Zielcomputer (Fernbedienung) Ihre Verbindungsanfrage erhalten hat, aber keine Befehlsshell für Sie erstellt hat.
- MaxShellsPerUser limit reached: Die Remote-Maschine hat eine strikte Begrenzung, wie viele Remote-Befehlsshells ein einzelner Benutzer gleichzeitig öffnen kann.
- MaxMemoryPerShellMB limit exceeded: Die Prozesse, die in Ihrer Remote-Sitzung ausgeführt werden, benötigen mehr RAM als das konfigurierte Limit auf dem Remote-Rechner zulässt.
- WinRM service corruption: Der WinRM-Dienst oder seine Zuhörer sind falsch konfiguriert oder auf dem Remotecomputer abgehängt.
Schrittweise Lösungen
Sie müssen diese Korrekturen auf den remote machine (der Computer, mit dem Sie eine Verbindung herstellen möchten). Melden Sie sich direkt oder über Remote Desktop (RDP) an.
Korrektur 1: Erhöhen Sie die maximale Anzahl von Shell pro Benutzer
Dies ist die häufigste Auflösung. Sie erhöht die Anzahl der gleichzeitigen Fernverbindungen, die ein einzelner Benutzer halten kann.
- Mach auf. Start Menu auf dem Fernbedienrechner.
- Typ
powershell, mit der rechten Maustaste auf Windows PowerShell, und wählen Run as administrator. - Überprüfen Sie Ihr aktuelles Limit, indem Sie diesen Befehl ausführen:
Get-Item WSMan:\localhost\Shell\MaxShellsPerUser - Erhöhen Sie die Grenze (z. B. auf 50) durch Ausführen:
Set-Item WSMan:\localhost\Shell\MaxShellsPerUser 50 - Wiederaufsetzen des WinRM-Dienstes, um Änderungen anzuwenden:
Restart-Service WinRM
Korrektur 2: Erhöhen Sie den pro Shell zugewiesenen Speicher
Wenn Ihre Skripte oder Befehle eine Menge Ressourcen verbrauchen, kann Windows die Shell-Anfrage aufgrund von Speicherbeschränkungen abschalten.
- Öffnen. Windows PowerShell Wie ein Administrator auf der Fernbedienung.
- Überprüfen Sie das aktuelle Speicherlimit (normalerweise 1024 MB standardmäßig):
Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB - Erhöhen Sie das Speicherlimit auf 2048 MB (2 GB) oder mehr, indem Sie:
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048 - Wiederherstellen des WinRM-Dienstes, um die Konfiguration anzuwenden:
Restart-Service WinRM
Korrektur 3: Vernichten Sie verwaiste PowerShell-Prozesse
Wenn Sie die Konfigurationsbeschränkungen jetzt nicht ändern können, können Sie Slots freimachen, indem Sie feststehende Hintergrundsitzungen beenden.
- Öffnen. PowerShell Wie ein Administrator auf der Fernbedienung.
- Suchen Sie nach PowerShell-Prozessen im Hintergrund, die unter Ihrem Benutzerkonto ausgeführt werden:
Get-Process wsmprovhost - Schließen Sie alle versteckten Remote-Host-Prozesse mit Gewalt ab, um Ihre Shell-Quoten zu löschen:
Stop-Process -Name wsmprovhost -Force
Korrektur 4: WinRM neu konfigurieren und zurücksetzen
Wenn die Konfigurationsänderungen das Problem nicht lösen, könnte der WinRM-Luschterzustand beschädigt sein.
- Öffnen. Command Prompt (cmd) oder PowerShell Wie ein Administrator.
- Führen Sie das eingebaute Konfigurationsprogramm aus, um Hörer und Firewall-Ausnahmen zu reparieren:
winrm quickconfig - Wenn Sie aufgefordert werden, Änderungen vorzunehmen oder den Dienst zu aktivieren, geben Sie
yund drücken. Enter.
Es kann einige Fehler geben.. Learn Microsoft