Behebung von WinRM HTTP 400 Bad Request Fehler
Der WinRM-Client (Windows Remote Management) wirft einen HTTP 400 Bad Request-Fehler aus, wenn er versucht, eine Remoteverbindung herzustellen, aber der Zielserver lehnt die Formatierung, Größe oder die Kopfzeilen der eingehenden Anfrage ab. Da der Remote-Dienst keine zusätzlichen Details bereitstellt, entsteht dieser Fehler typischerweise durch lokale Konfigurationsunterschiede, beschädigte WinRM-Zuhörer, SPN-Probleme (Service Principal Name) oder übergroße Kerberos-Authentifizierungstoken.
Hier ist eine Schritt-für-Schritt-Anleitung zur Diagnose und Lösung dieses Problems.
Schritt 1: Laufen Sie das WinRM Quick Config Tool aus
Der schnellste Weg, um beschädigte Zuhörer oder grundlegende Konfigurationsprobleme zu beheben, besteht darin, Windows die WinRM-Setup automatisch reparieren zu lassen.
- Klicken Sie auf Start Speisekarte, Typ
cmdMit der rechten Maustaste. Command Prompt, und wählen Run as administrator. - Geben Sie den folgenden Befehl ein und drücken Sie Enter:
winrm quickconfig - Wenn Sie aufgefordert werden, Änderungen vorzunehmen oder die Firewall-Ausnahmen zu konfigurieren, geben Sie
yund drücken. Enter.
Schritt 2: Löschen Sie die WinRM Client WinRM TrustedHosts Liste
Eine falsch konfigurierte. TrustedHosts Das Zurücksetzen oder die korrekte Konfiguration dieser Liste kann den Kommunikationsfehler beheben.
- Öffnen. Command Prompt als Administrator.
- Um die Kommunikation mit jedem Host vorübergehend (zur Prüfung) zu ermöglichen, laufen Sie:
winrm set winrm/config/client @{TrustedHosts="*"} - Alternativ, wenn Sie es auf Ihren spezifischen Zielserver beschränken möchten, ersetzen Sie den Sternchen durch die IP oder den Hostname Ihres Zielservers:
winrm set winrm/config/client @{TrustedHosts="TARGET_SERVER_NAME"}
Schritt 3: Erstellen Sie die WinRM HTTP/HTTPS-Lustern neu
Wenn die Standardhörer auf dem Remote-Computer beschädigt sind oder an widersprüchliche Ports gebunden sind, behebt das Löschen und Wiederaufstellen der zugrunde liegenden Webservice-Routing.
- Öffnen. Command Prompt als Administrator auf dem target machine.
- Überprüfen Sie bestehende Zuhörer, indem Sie laufen:
winrm enumerate winrm/config/listener - Löschen Sie den defekten HTTP-Zuhörer:
winrm delete winrm/config/listener?Address=*+Transport=HTTP - Erstellen Sie einen sauberen HTTP-Zuhörer:
winrm create winrm/config/listener?Address=*+Transport=HTTP - Wiederaufsetzen des WinRM-Dienstes, um Änderungen anzuwenden:
net stop winrm && net start winrm
Schritt 4: MaxTokenSize für die Kerberos-Authentifizierung anpassen
Wenn Sie sich über eine Domänenumgebung verbinden und Ihr Benutzerkonto zu vielen Active Directory-Gruppen gehört, ist Ihr Kerberos-Authentifizierungstoken möglicherweise zu groß. Dies führt dazu, dass der WinRM HTTP-Server das Paket als "Bad Request" ablehnt.
- Drücken Sie.
Win + R, Typregedit, und drücken. Enter Um den Registrierungs-Editor zu öffnen. - Navigieren Sie zum folgenden Pfad:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters(Anmerkung: Wenn dieParametersSchlüssel nicht vorhanden, mit der rechten MaustasteKerberos, select New > Key, and name it Parameters). - Klicken Sie mit der rechten Maustaste auf
ParametersSchlüssel, wählen New > DWORD (32-bit) Value. - Nennen Sie den neuen Wert
MaxTokenSize. - Doppelklick.
MaxTokenSizeSetzen Sie die Basis auf Decimal, change the Value data to65535, und klicken OK. - Starten Sie Ihren Computer neu, um die Registrierungsänderungen anzuwenden.
Schritt 5: Erhöhen Sie die maximale Umschlaggröße
Manchmal überschreitet die über WinRM übertragene Nutzlast der Datenstruktur die standardmäßig zulässige Konfigurationsgröße, was zu einem sofortigen HTTP 400-Fehler führt.
- Öffnen. Command Prompt als Administrator.
- Führen Sie den folgenden Befehl aus, um die maximale Umschlaggröße auf 1500 KB zu erhöhen:
winrm set winrm/config @{MaxEnvelopeSizekb="1500"} - Testen Sie Ihre Fernverbindung erneut, um zu sehen, ob die Nutzlastbeschränkung das Problem verursacht hat.
Es kann einige Fehler geben.. Learn Microsoft