Behebung von WinRM-Fehler: "Der WinRM-Client erhielt einen unbekannten HTTP-Statuscode vom Remote-WS-Management-Dienst"
Fehlerbeschreibung
Dieser Fehler tritt auf, wenn ein lokaler Windows Remote Management (WinRM) -Client versucht, eine Verbindung zu einem Remote-Zielcomputer herzustellen, aber der Remote-Webserver oder der WS-Management-Dienst einen unerwarteten HTTP-Antwortcode (z. B. 403 Forbidden, 404 Not Found oder 500 Internal Server Error) anstelle der Standard-WinRM-Protokollantworten zurückgibt.
Schrittweise Lösungen
Schritt 1: Überprüfung und Neustart des WinRM-Dienstes
Stellen Sie sicher, dass der Windows Remote Management-Dienst sowohl auf den lokalen als auch auf den entfernten Computern aktiv ausgeführt wird.
- Drücken Sie.
Windows Key + R, Typservices.msc, und drücken. Enter. - Scrollen Sie nach unten, um es zu finden. Windows Remote Management (WS-Management).
- Überprüfen Sie seinen Status. Wenn er nicht ausgeführt wird, klicken Sie mit der rechten Maustaste darauf und wählen Sie Start.
- Wenn es bereits läuft, klicken Sie mit der rechten Maustaste darauf und wählen Restart.
- Doppelklicken Sie auf den Dienst, wechseln Sie die Startup type Ich bin hier. Automatic, und klicken OK.
Schritt 2: Kontrolle von Hafenkonflikten (insbesondere mit IIS)
WinRM verwendet Standard-Ports 5985 (HTTP) Und... 5986 (HTTPS) Wenn eine andere Anwendung (wie IIS) auf diesen Ports zuhört oder WinRM versehentlich an den Port 80/443 gebunden ist, verursacht dies diesen Fehler.
- Öffnen. PowerShell als Administrator.
- Führen Sie den folgenden Befehl aus, um zu sehen, auf welchen Ports WinRM zuhört:
winrm enumerate winrm/config/listener - Überprüfen Sie, ob die Ports 5985 oder 5986 übereinstimmen.
winrm quickconfig - Drücken Sie. Y alle Konfigurationsänderungen zu akzeptieren.
Schritt 3: Konfiguration von vertrauenswürdigen Hosts
Wenn Sie eine Verbindung zu einem entfernten Rechner außerhalb einer Active Directory-Domänenumgebung herstellen (z. B. einer Arbeitsgruppe), muss Ihr lokaler Rechner dem entfernten Host vertrauen.
- Öffnen. PowerShell als Administrator auf Ihrem lokalen Computer.
- Führen Sie den folgenden Befehl aus, um Verbindungen zu allen Hosts zu ermöglichen (oder ersetzen Sie
*mit der spezifischen Remote-IP-Adresse):Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" -Force - Wiederaufsetzen des WinRM-Dienstes, um Änderungen anzuwenden:
Restart-Service winrm
Schritt 4: Proxy-Server-Einstellungen umgehen
Manchmal leiten die Proxy-Einstellungen des lokalen Systems den internen WinRM-Verkehr zu einem externen Proxy-Server, der den WS-Management-Verkehr nicht erkennt und einen unbekannten HTTP-Statuscode zurückgibt.
- Öffnen. Command Prompt als Administrator.
- Überprüfen Sie, ob ein Proxy durch Ausführen konfiguriert ist:
netsh winhttp show proxy - Wenn ein Proxy aktiv ist und den lokalen Datenverkehr leitet, setzen Sie ihn zurück, indem Sie laufen:
netsh winhttp reset proxy - Alternatively, ensure your environment variables bypass proxies for local addresses by adding the remote machine's IP to your environment's
NO_PROXYListe.
Schritt 5: Authentifizierungseinstellungen anpassen
Der Fehler kann ausgelöst werden, wenn sich Client und Server nicht über die Authentifizierungsmethode einig sind (z. B. Negotiate, Basic, CredSSP).
- Öffnen. PowerShell als Administrator sowohl auf dem Client als auch auf Remote-Maschinen.
- Aktivieren der Standard-Authentifizierung durch Ausführen:
Set-Item WSMan:\localhost\Service\Auth\Negotiate -Value $true Set-Item WSMan:\localhost\Client\Auth\Negotiate -Value $true - Wenn Ihre Verbindungsstrategie eine grundlegende Authentifizierung erfordert, aktivieren Sie sie explizit:
Set-Item WSMan:\localhost\Service\Auth\Basic -Value $true Set-Item WSMan:\localhost\Client\Auth\Basic -Value $true
ERROR_WSMAN_INVALID_BATCH_SETTINGS_PARAMETER | ERROR_WSMAN_SERVER_DESTINATION_LOCALHOST | ERROR_WSMAN_UNSUPPORTED_HTTP_STATUS_REDIRECT | ERROR_WSMAN_HTTP_REQUEST_TOO_LARGE_STATUS | ERROR_WSMAN_HTTP_SERVICE_UNAVAILABLE_STATUS
Es kann einige Fehler geben.. Learn Microsoft