Korrektur für WinRM-Fehler: HTTP-Weiterleitung Statuscode nicht unterstützt
Beschreibung des Fehlers
Dieser Fehler tritt auf, wenn ein Windows Remote Management (WinRM) -Client versucht, eine Verbindung zu einem Remote-Server oder Endpoint herzustellen, aber der Zielserver den Datenverkehr (normalerweise über einen HTTP 301, 302 oder 307 Statuscode) auf eine andere URL oder einen HTTPS-Port umleitet. Standardmäßig behandelt das WinRM-Protokoll HTTP-Weiterleitungen als Sicherheitsrisiko und verbietet sie ausdrücklich. Da WinRM sich weigert, dem Umleitungslink zu folgen, scheitert die Verbindung sofort. Dieses Problem tritt häufig auf, wenn Administratoren globale IIS-Weiterleitungen auf einem Server konfigurieren, Lastbalancer verwenden, die automatisch HTTP-Verkehr auf HTTPS zwingen, oder den falschen Adressblock in ihre Automatisierungsskripte eingeben.
Schrittweise Lösungen
Methode 1: Umgehung von Umleitungen durch direkte Verbindung zum HTTPS-Endpunkt
Der sicherste Weg, dieses Problem zu beheben, besteht darin, die Weiterleitung vollständig zu vermeiden, indem Sie direkt auf die endgültige HTTPS-URL zielen.
- Öffnen Sie die PowerShell-Konsole oder das Management-Skript.
- Ort des Befehls, der den Fehler verursacht (in der Regel
Enter-PSSession,New-PSSession, oderInvoke-Command) ist. - Ändern Sie den Verbindungsprotokollparameter von HTTP auf HTTPS und fügen Sie explizit den richtigen HTTPS-Port hinzu (Standard ist 5986).
- Example of a bad command causing a redirect:
New-PSSession -ComputerName "Server01" - Example of the corrected command:
New-PSSession -ComputerName "Server01" -UseSSL
- Example of a bad command causing a redirect:
- Wenn Sie ein bestimmtes Connection URI verwenden, stellen Sie sicher, dass es explizit mit beginnt.
https://und enthält den richtigen Domainnamen, der mit dem SSL-Zertifikat des Servers übereinstimmt.
Methode 2: Änderung der IIS-Weiterleitungsregeln auf dem Zielserver
Wenn Sie den Remote-Server steuern, verstößt eine globale HTTP-Weiterleitungsregel in Internet Information Services (IIS) wahrscheinlich gegen WinRM. Sie müssen das WinRM-virtuelle Verzeichnis von der Weiterleitungsregel ausschließen.
- Melden Sie sich in den entfernten Windows-Server an, der den Fehler verursacht hat.
- Klicken Sie auf Start Menu, Typ IIS Manager, und öffne ihn.
- Auf der linken Seite. Connections Pane, erweitern Sie Ihren Server Knoten und klicken Sie auf Sites, dann wählen Sie die Webseite aus, auf der Ihre Weiterleitungsregeln gehostet werden (in der Regel die Default Web Site ) ist.
- Doppelklicken Sie im mittleren Fenster auf HTTP Redirect.
- Wenn alle Anfragen auf eine HTTPS-Seite umgeleitet werden, müssen Sie eine Ausnahme für den WinRM-Pfad hinzufügen.
- To do this using web.config configuration rather than the GUI, open the website root folder (usually
C:\inetpub\wwwroot) und öffne dieweb.configDie Akte. - Fügen Sie einen hinzu.
<location>Pfadregel zum Deaktivieren der Weiterleitung für diePowerShelloder...wsmanWege:<location path="PowerShell"> <system.webServer> <httpRedirect enabled="false" /> </system.webServer> </location> - Speichern Sie die Datei und starten Sie IIS neu.
iisresetin einer administrativen Eingabeaufforderung.
Methode 3: Aktivieren der Flagge "Umleitung zulassen" in PowerShell-Sitzungen
Wenn Sie aufgrund Ihrer Netzwerkinfrastruktur oder des Load Balancer-Setups eine Weiterleitung zulassen müssen, können Sie Ihre WinRM-Client-Session-Option ausdrücklich anweisen, um Weiterleitungen zuzulassen.
- Öffnen Sie Ihr PowerShell-Skript oder Ihre Konsole.
- Definieren Sie ein neues WinRM Session Option Objekt und setzen Sie die
AllowRedirectionEigenschaft zu wahr.$SessionOptions = New-PSSessionOption -AllowRedirection - Geben Sie dieses Option-Objekt mit dem
-SessionOptionParameter.New-PSSession -ComputerName "Server01" -SessionOption $SessionOptions - Hinweis: WinRM folgt der Weiterleitung nur, wenn Sie neben dieser Option ein explizites Connection URI-Format oder explizite Anmeldeinformationen verwenden.
Methode 4: Aktualisierung der SPN- und Kerberos-Einstellungen
Wenn der Umleitungsfehler ein irreführendes Symptom eines Kerberos-Authentifizierungsfehlers bei der Routing über einen generischen DNS-Alias ist, kann eine Einstellung eines Service Principal Names (SPN) ihn beheben.
- Öffnen Sie eine Eingabeaufforderung als Administrator auf Ihrem Active Directory-Domain-Controller oder Verwaltungssystem.
- Überprüfen Sie die vorhandenen SPNs für Ihren Zielserver, indem Sie:
setspn -L Server01 - Wenn der Server einen DNS-Alias oder einen benutzerdefinierten Hostnamen verwendet, registrieren Sie den WSMan SPN manuell, um ihn ordnungsgemäß an das Computerkonto zu binden:
setspn -S WSMAN/Server01 Server01setspn -S WSMAN/://yourdomain.com Server01 - Starten Sie den WinRM-Dienst auf der Remote-Maschine neu, indem Sie
Restart-Service WinRMin PowerShell.
Es kann einige Fehler geben.. Learn Microsoft