Windows-Fehler: Der WinRM Shell-Client kann die Anfrage nicht verarbeiten
Fehlerbeschreibung
This error occurs when the Windows Remote Management (WinRM) service loses track of the unique identifier (shell handle) assigned to your remote session. It signifies a communication breakdown between your local machine and the remote server.
Häufige Ursachen
- Network Instability: Kurze Verbindungsunterbrechungen führen dazu, dass der Server den Session-Handler fallen lässt.
- Session Timeouts: Der Remote-Server schloss die leere Sitzung automatisch.
- Server Resource Limits: Die Fernbedienung hat die maximal zulässigen gleichzeitigen Granaten getroffen.
- Service Crashes: Der WinRM-Dienst auf dem Remote-Rechner wurde unerwartet neu gestartet.
Schrittweise Lösungen
Korrektur 1: Wiederaufnehmen des WinRM-Dienstes
Durch die Aktualisierung des WinRM-Dienstes sowohl auf den lokalen als auch auf den Remote-Maschinen wird das Verbindungsframework wiederhergestellt.
- Mach auf. Start Menu.
- Typ cmd oder... PowerShell.
- Klicken Sie mit der rechten Maustaste auf die Anwendung und wählen Sie Run as administrator.
- Typ
net stop winrmund drücken. Enter. - Warten Sie, bis der Service komplett aufhört.
- Typ
net start winrmund drücken. Enter.
Korrektur 2: Erhöhen Sie die maximale Anzahl von Shell pro Benutzer
Wenn der Remote-Server Ihren Handler abschaltet, weil ihm die Ressourcen ausgehen, löst die Erhöhung des Shell-Zuteilungslimits das Problem.
- Öffnen. PowerShell als Administrator auf dem Remote-Server.
- Überprüfen Sie das aktuelle Limit durch Ausführen:
Get-Item WSMan:\localhost\Shell\MaxShellsPerUser - Erhöhen Sie die Grenze auf 50, indem Sie laufen:
Set-Item WSMan:\localhost\Shell\MaxShellsPerUser 50 - Starten Sie den WinRM-Dienst mit den Befehlen von Fix 1 Änderungen anzuwenden.
Korrektur 3: Einstellen der Eigenschaften der Leerlaufzeit
Verhindern Sie, dass der Server den Shell-Handler während der Inaktivität vorzeitig schließt.
- Öffnen. PowerShell als Administrator auf dem Remote-Server.
- Überprüfen Sie Ihre aktuelle Leerlaufzeit-Einstellung, indem Sie laufen:
Get-Item WSMan:\localhost\Shell\IdleTimeout - Setzen Sie den Leerlaufwert auf einen höheren Schwellenwert (Wert in Millisekunden, 7200000 entspricht 2 Stunden):
Set-Item WSMan:\localhost\Shell\IdleTimeout 7200000 - Schließen und wieder öffnen Sie Ihre Fernsteuerungskonsole.
Korrektur 4: Wiederverbindung und Zurücksetzen der Sitzungsvariable
Wenn Sie Skripte über eine gespeicherte Sitzungsvariable ausführen (z. B. $Session ), wird die Variable beschädigt, wenn der Griff ungültig wird. Sie müssen sie löschen und neu erstellen.
- Entfernen Sie die kaputte Sitzungsvariable in Ihrem Skript oder Ihrer Konsole:
Remove-PSSession $Session - Die Sitzung neu erstellen, um einen komplett neuen Shell-Handling zu erhalten:
$Session = New-PSSession -ComputerName "RemoteServerName" - Geben Sie die neue Sitzung ein oder führen Sie Ihre Befehle erneut aus:
Enter-PSSession $Session
Es kann einige Fehler geben.. Learn Microsoft