Wie man es repariert "Der WinRM Shell-Client kann die Anfrage nicht verarbeiten. Einer der für die WSManSignalShell-Funktion erforderlichen Parameter ist null oder null".
Fehlerbeschreibung
Dieser Fehler tritt auf, wenn der Windows Remote Management (WinRM) -Client versucht, ein Steuerungssignal (z. B. Beenden eines Prozesses oder Schließen einer Sitzung) an eine Remote-Shell zu senden, aber die zugrunde liegende WS-Management-API erhält einen ungültigen, fehlenden oder auf null gesetzten Parameter ( WSManSignalShell Dies zeigt typischerweise auf eine Konfigurationsunvereinbarkeit zwischen dem lokalen Client und dem Remote-Host, beschädigte Shell-Sitzungszustände, veraltete Windows PowerShell/WinRM-Komponenten oder restriktive Netzwerksicherheitsrichtlinien, die die spezifische Signallast blockieren.
Schrittweise Lösungen
Schritt 1: Neustart des WinRM-Dienstes
Ein fehlerhafter oder eingefrorener WinRM-Dienst auf dem lokalen Computer oder dem Remote-Server kann zu Fehlern bei der Parameterbereitstellung führen.
- Drücken Sie. Windows Key + X und wählen Terminal (Admin) oder... Command Prompt (Admin).
- 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 - Führen Sie diese Schritte möglichst sowohl auf Ihrem lokalen Rechner als auch auf dem entfernten Zielrechner aus.
Schritt 2: Aktualisieren oder erneut registrieren Sie die WS-Management-Komponenten
Wenn die für die WSMan-Funktionen verantwortlichen lokalen Systemdateien nicht registriert oder beschädigt sind, kann WinRM Nullparameter übergeben.
- Öffnen. Command Prompt as Administrator.
- Führen Sie den folgenden Befehl aus, um die WinRM-Konfiguration auf die Standard-Einstellungen zurückzusetzen:
winrm quickconfig - Typ Y und drücken. Enter wenn Sie aufgefordert werden, Änderungen vorzunehmen oder die Firewall-Ausnahmen zu aktivieren.
Schritt 3: Erhöhen Sie WinRM MaxShellsPerUser und MaxMemoryPerShellMB
Wenn einer Remote-Shell der zugewiesene Speicher ausgeht oder die zulässige Anzahl gleichzeitiger Shell überschreitet, fallen eingehende Sitzungspakete ab oder werden beschädigt, was zu Nullwerten bei Funktionsanrufen führt.
- Öffnen. PowerShell as Administrator auf dem entfernten Rechner (oder lokal, wenn lokale Fehlerbehebungen gelöst werden).
- Überprüfen Sie die aktuellen Grenzwerte durch Ausführen:
Get-Item WSMan:\localhost\Shell\* - Erhöhen Sie den pro Shell zugewiesenen maximalen Speicher, um sicherzustellen, dass die Signallast nicht abfällt:
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 1024 - Erhöhung der maximal zulässigen Anzahl gleichzeitiger Shell pro Benutzer:
Set-Item WSMan:\localhost\Shell\MaxShellsPerUser 30 - Der WinRM-Dienst wird mit den Befehlen aus Schritt 1 neu gestartet, um Änderungen anzuwenden.
Schritt 4: Zielhost der Liste der vertrauenswürdigen Hosts hinzufügen
If the client does not fully trust the remote endpoint, certain advanced management signals like WSManSignalShell kann aufgrund von Sicherheitsbeschränkungen entkleidet werden.
- Öffnen. PowerShell as Administrator auf Ihrem lokalen Client-Rechner.
- Führen Sie den folgenden Befehl aus, um dem bestimmten Fernbedienungsgerät zu vertrauen (ersetzen Sie
REMOTE_IP_OR_NAMEmit der IP-Adresse oder dem Hostname Ihres tatsächlichen Ferncomputers):Set-Item WSMan:\localhost\Client\TrustedHosts -Value "REMOTE_IP_OR_NAME" -Force(Anmerkung: Verwenden Sie ` ` statt des Namens, wenn Sie allen Hosts für Testzwecke vertrauen möchten, obwohl dies weniger sicher ist).*
- Starten Sie den WinRM-Dienst auf Ihrem lokalen Rechner neu.
Schritt 5: Überprüfen Sie die Kompatibilität von PowerShell und.NET Framework
Eine Inkompatibilität zwischen der Version von PowerShell, die auf der Clientmaschine ausgeführt wird, und der Version, die auf dem Remote-Host ausgeführt wird, kann dazu führen, dass serialisierte Parameterobjekte falsch als null entpackt werden.
- Überprüfen Sie Ihre PowerShell-Version auf beiden Maschinen, indem Sie:
$PSVersionTable.PSVersion - Wenn auf einem Computer eine veraltete Version von Windows Management Framework (WMF) oder.NET Framework ausgeführt wird, laden Sie die neuesten Updates über Windows Update herunter und installieren Sie sie, um sicherzustellen, dass beide Endgeräte die gleichen Protokolle verwenden.
Es kann einige Fehler geben.. Learn Microsoft