Fehlerbehebung von Windows: WinRM Shell Client Parameter Null oder Null
Beschreibung des Fehlers
Dieser Fehler tritt auf, wenn Sie das Tool Windows Remote Management (WinRM) verwenden, um Befehle auf einem Remote-System über Windows Remote Shell auszuführen ( winrs Die spezifische Botschaft The WinRM Shell client cannot process the request. One of the parameters required for the WinrsCloseShell function is null or zero indicates a protocol mismatch, unexpected connection termination, or session corruption.
Es tritt typischerweise auf, wenn der Remote-Host den Befehlsausführungskontext unerwartet beendet oder wenn die Kommunikation durch ein Netzwerkgerät, eine Firewall oder eine Sicherheitssoftware in der Mitte der Sitzung blockiert wird. Es kann auch durch eine veraltete WinRM-Konfiguration, beschädigte Shell-Sitzungen auf dem Zielserver oder strenge Gruppenrichtlinien verursacht werden, die aggressive Verbindungs-Timeouts durchsetzen.
Schrittweise Lösungen
Folgen Sie diesen Schritten, um das Problem zu beheben. Möglicherweise benötigen Sie Administratorrechte sowohl für den lokalen Rechner als auch für den entfernten Zielrechner.
Schritt 1: Wiederaufnahme des WinRM-Dienstes auf beiden Maschinen
Ein beschädigter Speicherzustand oder eine hängende Sitzung kann diesen Fehler verursachen. Der Neustart des Windows-Fernverwaltungsdienstes löscht vorhandene Sitzungen.
- Drücken Sie die... Windows Key + X und wählen Terminal (Admin) oder... Command Prompt (Admin).
- Geben Sie den folgenden Befehl ein, um den Dienst zu beenden:
net stop winrm - Geben Sie den folgenden Befehl ein, um den Dienst neu zu starten:
net start winrm - Führen Sie diese Schritte sowohl auf Ihrem lokalen Computer als auch auf dem Remote-Server aus, mit dem Sie eine Verbindung herstellen möchten.
Schritt 2: Erhöhen Sie WinRM Max-Shells und Max-Speicher pro Shell
Der Fehler kann auftreten, wenn Ihre Sitzung die maximal zugewiesenen Ressourcenlimits auf dem Remote-Server erreicht, was den Server zwingt, die Shell unerwartet zu schließen.
- Öffnen Sie PowerShell oder die Eingabeaufforderung als Administrator Auf dem... remote machine.
- Führen Sie den folgenden Befehl aus, um die aktuellen Konfigurationsgrenzen zu überprüfen:
winrm get winrm/config/winrs - Erhöhen Sie den maximal zulässigen Speicher pro Shell auf 2048 MB, indem Sie:
winrm set winrm/config/winrs @{MaxMemoryPerShellMB="2048"} - Erhöhen Sie die maximale Anzahl gleichzeitiger Shell pro Benutzer auf 30 durch Ausführen:
winrm set winrm/config/winrs @{MaxShellsPerUser="30"} - Der WinRM-Dienst wird mit den Anweisungen aus Schritt 1 neu gestartet, um Änderungen anzuwenden.
Schritt 3: Überprüfung und Neuregistrierung von WinRM-Dienstkomponenten
Fehlende Infrastrukturkonfigurationen oder Hörer-Korruptionen können Parameter mitten in der Sitzung fallen lassen.
- Öffnen Sie PowerShell als Administrator Auf dem... remote server.
- Führen Sie den Befehl " Selbsterholung " aus:
winrm quickconfig - If the service is already configured, it will analyze your environment. If it asks you to make changes or open firewall exceptions, type
yund drücken. Enter.
Schritt 4: Anpassen von Netzwerk-Timeouts und Live-Einstellungen
Wenn eine Firewall oder ein physischer Last-Balancer leere Verbindungen fallen lässt, wird der WinRM-Client versuchen, eine Shell zu schließen, die auf dem Server nicht mehr existiert, was zu einem Nullparameterfehler führt.
- Öffnen Sie PowerShell als Administrator Auf deinen... local machine.
- Führen Sie diesen Befehl aus, um die Timeout-Werte Ihres Clients zu überprüfen:
winrm get winrm/config/client - Erhöhen Sie die Betriebszeitgrenze auf 5 Minuten (300.000 Millisekunden), um vorzeitige Trennungen zu verhindern:
winrm set winrm/config/client @{Timeout="300000"}
Schritt 5: Überprüfen Sie die Kompatibilität von Windows Update und PowerShell-Version
A known protocol bug in older versions of the Windows Management Framework (WMF) can trigger this specific WinrsCloseShell Fehler bei der Kommunikation zwischen verschiedenen Windows Server-Versionen.
- Überprüfen Sie Ihre PowerShell-Version auf beiden Maschinen, indem Sie:
$PSVersionTable.PSVersion - Wenn auf Ihrem Remotecomputer Windows Server 2012 oder Windows Server 2016 mit einer veralteten Version von WMF 5.1 ausgeführt wird, navigieren Sie zu Windows Update.
- Installieren Sie alle laufenden kumulativen Qualitätsupdates auf beiden Maschinen, um die zugrunde liegenden WinRM-Engine-Binärdateien zu patchen.
Es kann einige Fehler geben.. Learn Microsoft