Windows-Fehler: WinRM-Klienten-Authentifizierungsmechanismus
Beschreibung
Dieser Fehler tritt auf, wenn Sie versuchen, eine Remoteverbindung über eine unverschlüsselte HTTP-Verbindung mit Windows Remote Management (WinRM) oder PowerShell Remoting herzustellen. Standardmäßig verbieten Windows-Sicherheitsrichtlinien das Senden von Authentifizierungsdaten ohne einen expliziten Authentifizierungsmechanismus (wie Kerberos, Negotiate oder Basic), es sei denn, Datenverschlüsselung wird verwendet (HTTPS) oder durch Ihre Konfiguration ausdrücklich zulässig. Wenn Sie nicht angeben, wie Sie authentifizieren, geht WinRM davon aus, dass Sie lokale Benutzerdaten verwenden, die aus Sicherheitsgründen über Roh-HTTP blockiert werden.
Einfache Lösungen Schritt für Schritt
Lösung 1: Fügen Sie den Remote-Server zu TrustedHosts hinzu
Der einfachste Weg, dies für lokale Netzwerke oder Labore zu lösen, besteht darin, den Zielcomputer in die TrustedHosts-Liste des Clientmaschinen hinzuzufügen. Dies teilt Ihrem Computer mit, dass das Ziel sicher ist, ohne erweiterte Authentifizierung verbunden zu werden.
- Klicken Sie mit der rechten Maustaste auf Start Menu Schaltfläche auf Ihrem Clientcomputer.
- Wählen Sie. Terminal (Admin), PowerShell (Admin), oder Command Prompt (Admin).
- Führen Sie den folgenden Befehl aus, um Verbindungen zu allen entfernten Computern zu ermöglichen:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" -Force(Anmerkung: Sie können ` ersetzen
with a specific IP address or computer name for better security, for example:Set-Item WSMan:\localhost\Client\TrustedHosts -Wert "192.168.1.50" -Force`) * - Der WinRM-Dienst wird neu gestartet, indem:
Restart-Service WinRM
Korrektur 2: Definieren Sie den Authentifizierungsmechanismus explizit
Wenn Sie ein Skript oder einen Befehl in PowerShell ausführen, können Sie diesen Fehler umgehen, indem Sie die Authentifizierungsmethode explizit angeben und die Anmeldeinformationen ordnungsgemäß übergeben.
- Mach auf. PowerShell - Das ist ein Anruf.
- Verwenden Sie die...
-AuthenticationParameter zusammen mit dem-CredentialParameter unter Ihrem Kommando. - Beispiel für Enter-PSSession:
Enter-PSSession -ComputerName "YOUR_REMOTE_COMPUTER" -Credential (Get-Credential) -Authentication Negotiate - Beispiel für Aufrufbefehl:
Invoke-Command -ComputerName "YOUR_REMOTE_COMPUTER" -ScriptBlock { Get-Process } -Credential (Get-Credential) -Authentication CredSSP
Korrektur 3: Basis-Authentifizierung auf Clientseite aktivieren
Wenn Ihr Workflow die Verwendung lokaler Benutzernamen und Passwörter ohne komplexe Verzeichniskonfigurationen erfordert, müssen Sie die Basis-Authentifizierung in der WinRM-Client-Konfiguration ausdrücklich aktivieren.
- Öffnen. PowerShell (Admin).
- Führen Sie diesen Befehl aus, um Ihre aktuelle Konfiguration zu überprüfen:
Get-Item WSMan:\localhost\Client\Auth\Basic - Wenn der Wert auf eingestellt ist
False, führen Sie diesen Befehl aus, um ihn zu aktivieren:Set-Item WSMan:\localhost\Client\Auth\Basic -Value $true - Stellen Sie sicher, dass unverschlüsselter Datenverkehr erlaubt ist, wenn Sie HTTPS nicht verwenden (nur für sichere, isolierte lokale Netzwerke empfohlen):
Set-Item WSMan:\localhost\Client\AllowUnencrypted -Value $true
Korrektur 4: Überprüfen Sie die Konfiguration des Remote-Servers
Stellen Sie sicher, dass die Zielmaschine tatsächlich zuhört und die Remote-Konfiguration zulässt.
- Melden Sie sich an. Target/Remote computer.
- Öffnen. PowerShell (Admin).
- Aktivieren und reparieren Sie die WinRM-Schnellkonfiguration durch Ausführen:
winrm quickconfig - Typ
yund drücken. Enter um alle Anweisungen zur Aktivierung des Dienstes oder zur Eröffnung von Firewall-Ausnahmen zu bestätigen.
Es kann einige Fehler geben.. Learn Microsoft