Fehlerbeschreibung
Dieser Fehler tritt auf, wenn Sie versuchen, eine Verbindung zum lokalen Rechner mit Windows Remote Management (WinRM) über seine Loopback-Adresse herzustellen ( localhost, 127.0.0.1, oder [::1] ) ohne ausdrücklich einen Authentifizierungsmechanismus zu spezifizieren, der Loopback-Verkehr zulässt, oder wenn Standard-Kerberos-Authentifizierung verwendet wird.
By default, the WinRM architecture and Kerberos security protocols prevent loopback authentication to protect against credential reflection attacks. Kerberos relies on Service Principal Names (SPNs) linked to active computer accounts; because localhost Wenn der Code nicht auf ein einzigartiges Active Directory-Maschinenkonto gelöst wird, scheitert die Kerberos-Authentifizierung. Um Befehle lokal über WinRM auszuführen, müssen Sie den WinRM-Client so konfigurieren, dass die lokale Verbindung zulässig ist, oder explizit eine alternative Authentifizierungsmethode wie Basic oder Negotiate verwenden.
Schrittweise Lösungen
Methode 1: Verwenden Sie den Computernamen anstelle von Localhost
Die einfachste und sicherste Lösung besteht darin, Loopback-Adressen vollständig zu vermeiden, indem Sie sich auf Ihren tatsächlichen Maschinennamen konzentrieren.
- Öffnen. Command Prompt oder... PowerShell.
- Finden Sie den Namen Ihres Computers unter:
hostname - Verwenden Sie den zurückgegebenen Hostnamen anstelle von
localhostoder...127.0.0.1in Ihrem WinRM oder PowerShell Remote-Befehl. Zum Beispiel:Enter-PSSession -ComputerName YOUR_COMPUTER_NAME
Methode 2: Konfiguration von WinRM-vertrauenswürdigen Hosts
Wenn Sie es brauchen. localhost, müssen Sie die WinRM-Client-Konfiguration sagen, um Verbindungen explizit zu vertrauen.
- Klicken Sie mit der rechten Maustaste auf das Windows Start-Menü und wählen Sie Windows PowerShell (Admin) oder... Terminal (Admin).
- Führen Sie den folgenden Befehl aus.
localhostzu Ihrer Liste der vertrauenswürdigen Hosts:Set-Item WSMan:\localhost\Client\TrustedHosts -Value "localhost" -Force(Anmerkung: Wenn Sie auch IP-Rundläufe zulassen müssen, verwenden Sie
-Value "localhost,127.0.0.1,::1") - Wiederaufsetzen des WinRM-Dienstes, um Änderungen anzuwenden:
Restart-Service WinRM
Methode 3: Ändern des Authentifizierungsmechanismus
Wenn Ihr Befehl Parameterflaggen zulässt, wechseln Sie ausdrücklich von Kerberos auf Negotiate oder Basic Authentication, die den Loopback-Verkehr korrekt verarbeitet.
- For PowerShell sessions: Fügen Sie die
-AuthenticationParameter für Ihren Verbindungsbefehl:Enter-PSSession -ComputerName "localhost" -Authentication Negotiate - For general WinRM utility commands: Geben Sie den Authentifizierungstyp mit dem
-aSchalter:winrm get winrm/config/client -a:Negotiate
Methode 4: Aktivieren der Politik für den Filter von lokalen Konto-Token
Wenn Sie den Befehl als lokales Administratorkonto ausführen und nach Anwendung der oben genannten Schritte immer noch mit Zugriffsblöcken konfrontiert sind, kann Windows User Account Control (UAC) Ihre administrativen Berechtigungen für die Loopback-Verbindung entziehen.
- Drücken Sie.
Windows Key + R, Typregedit, und drücken. Enter Um den Registrierungs-Editor zu öffnen. - Navigieren Sie zum folgenden Pfad:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System - Klicken Sie mit der rechten Maustaste auf einen leeren Bereich im rechten Fenster und wählen Sie New - > DWORD (32-bit) Value.
- Nennen Sie den neuen Wert:
LocalAccountTokenFilterPolicy - Doppelklick.
LocalAccountTokenFilterPolicyund ändere es. Value data Ich bin hier.1. - Klicken OK und starten Sie Ihren Computer neu, um die Registrierungsänderungen anzuwenden.
Es kann einige Fehler geben.. Learn Microsoft