Windows-Fehler: Der WinRM Shell-Client kann die Anfrage nicht verarbeiten
Fehlerbeschreibung
Dieser Fehler tritt typischerweise bei Remote-Management-Aufgaben mit Windows Remote Management (WinRM) oder... PowerShell Remoting. Es zeigt an, dass die Verbindungssitzung (Shell-Handling) zwischen Ihrem lokalen Computer und dem Remote-Server unter der Betriebszeit kaputt, desynchronisiert oder beschädigt wurde.
Zu den häufigsten Ursachen gehören:
- Network Instability: Kurze Netzwerk-Drops brechen den aktiven WSMan-Sitzungshandle.
- Session Timeouts: Der Remote-Server schloss die leere Verbindung und machte den lokalen Handler ungültig.
- Resource Limits: Der Remote-Server erreichte seine maximal zulässigen aktiven Shell pro Benutzer.
- Service Restarts: Die...
WinRMDer Dienst auf dem Zielgerät wurde neu gestartet, während Ihr Skript ausgeführt wurde.
Schrittweise Lösungen
Folgen Sie diesen Lösungsansätzen, um das Problem zu lösen.
Korrektur 1: Wiederaufnehmen des WinRM-Dienstes
Das Aktualisieren des WinRM-Dienstes sowohl auf dem lokalen als auch auf dem Remote-Rechner löscht normalerweise ungültige Griffe.
- Mach auf. Start Menu Suchen Sie. cmd, klicken Sie mit der rechten Maustaste darauf und wählen Sie Run as administrator.
- Geben Sie den folgenden Befehl ein, um den Dienst zu stoppen und drücken Sie Enter:
net stop winrm - Geben Sie den folgenden Befehl ein, um den Dienst neu zu starten, und drücken Sie Enter:
net start winrm
Korrektur 2: Maximale Anzahl von Shell pro Benutzer erhöhen
Wenn Sie komplexe Skripte ausführen, erreichen Sie möglicherweise die Standardgrenze für gleichzeitige Remote-Shells. Sie können diesen Wert auf dem Remote-Server erhöhen.
- Öffnen. PowerShell as an Administrator auf dem Zielgerät.
- Führen Sie diesen Befehl aus, um Ihre aktuellen Grenzwerte zu überprüfen:
Get-Item WSMan:\localhost\Shell\MaxShellsPerUser - Erhöhen Sie den Grenzwert (z. B. auf 50), indem Sie:
Set-Item WSMan:\localhost\Shell\MaxShellsPerUser 50
Behebung 3: Wiederherstellung der PowerShell-Sitzung
Wenn dieser Fehler in einem langlaufenden PowerShell-Skript angezeigt wird, ist das vorhandene Session-Objekt tot. Sie müssen die kaputte Session explizit schließen und eine neue erstellen.
- Suchen Sie nach Ihrer Session-Variable in Ihrem Skript (in der Regel mit dem Namen so etwas wie
$session) ist. - Fügen Sie Code hinzu, um die kaputte Sitzung sicher zu entfernen:
Remove-PSSession $session -ErrorAction SilentlyContinue - Erstellen Sie eine neue Sitzung, bevor Sie Ihren nächsten Befehl ausführen:
$session = New-PSSession -ComputerName "RemoteComputerName" Invoke-Command -Session $session -ScriptBlock { YourCommand }
Korrektur 4: MaxMemoryPerShellMB-Einstellungen anpassen
Eine geringe Speicherzuweisung auf der Remote-Maschine kann den WSMan-Shell-Host-Worker-Prozess abstürzen, was zu einem ungültigen Handle führt.
- Öffnen. PowerShell as an Administrator auf der Fernbedienung.
- Überprüfen Sie das aktuelle Speicherlimit pro Shell:
Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB - Erhöhen Sie die Speichergrenze auf 2048 MB (2 GB), um sicherzustellen, dass die Speicherbereitschaft der Skripte nicht ausgeht:
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048 - Wiederaufsetzen des WinRM-Dienstes, um Änderungen anzuwenden:
Restart-Service winrm
Es kann einige Fehler geben.. Learn Microsoft