Comment réparer "Le client WinRM ne peut pas traiter la demande. Le drapeau qui spécifie le mécanisme d'authentification à utiliser est incorrect".
Ce guide détaillé fournit la description et une résolution étape par étape de l'erreur de balise d'authentification Windows Remote Management (WinRM).
Description de l'erreur
This error occurs when a WinRM client attempts to establish a remote connection to a target server, but the authentication method specified by the client is either disabled, unsupported, or mismatched on the remote server.
Les causes courantes
- Disabled Authentication Providers: Le client tente d'utiliser Kerberos, Negotiate ou CredSSP, mais ce fournisseur spécifique est désactivé dans la configuration WinRM.
- Workgroup vs. Domain Mismatch: Trying to connect to a machine outside a trusted active directory domain without using explicit Basic authentication or configuring the
TrustedHostsLa liste. - Incorrect Connection Flags: Le cmdlet ou l'application PowerShell initiant la connexion oblige explicitement un type d'authentification que le serveur refuse d'accepter.
- HTTPS/HTTP Confusion: Essayer de transmettre des informations d'identification non chiffrées sur une connexion HTTP non chiffrée lorsque la politique du serveur impose strictement le HTTPS ou le trafic chiffré.
Réparations étape par étape
Suivez ces solutions pour résoudre le problème. Vous aurez besoin des privilèges d'administrateur sur le client et les machines distantes.
Solution 1: activer les types d'authentification nécessaires
You must ensure both the client and server have the required authentication protocols enabled (usually Negotiate Je ne sais pas. Kerberos ) et de l'Union européenne.
- Ouvrez. PowerShell as an Administrator sur la machine du client.
- Exécutez la commande suivante pour vérifier les paramètres d'authentification du client:
Get-ChildItem WSMan:\localhost\Client\Auth - Regardez la sortie.
Negotiateou...Kerberosest réglée surFalse, les activer en exécutant:Set-Item WSMan:\localhost\Client\Auth\Negotiate -Value $true Set-Item WSMan:\localhost\Client\Auth\Kerberos -Value $true - Répétez le processus pour les paramètres côté service/serveur si vous configurez la machine distante:
Set-Item WSMan:\localhost\Service\Auth\Negotiate -Value $true Set-Item WSMan:\localhost\Service\Auth\Kerberos -Value $true - Redémarrez le service WinRM pour appliquer les modifications:
Restart-Service WinRM
Solution 2: Configurer les hôtes de confiance (pour les environnements de groupe de travail)
Si les ordinateurs ne sont pas dans le même domaine Active Directory, la machine client rejettera la connexion à moins que le serveur ne soit explicitement digne de confiance.
- Ouvrez. PowerShell as an Administrator sur la machine du client.
- Ajoutez l'adresse IP ou le nom d'hôte de l'ordinateur distant à votre liste d'hôtes de confiance:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "REMOTE_COMPUTER_IP_OR_NAME"(Remarque: vous pouvez utiliser `
to trust all hosts if you are in a secure private network, though this is less secure:Remplissez-Item WSMan:\localhost\Client\TrustedHosts -Value " " `) - Appuyez dessus. Y et frappe. Enter lorsque vous êtes invité à confirmer les modifications.
Solution 3: Spécifiez explicitement le type d'authentification dans votre commande
Lorsque vous démarrez la connexion à distance, dictez manuellement le drapeau d'authentification au lieu de laisser Windows deviner.
- Lors de l' utilisation
Enter-PSSessionou...Invoke-Command- Je vous l' ai dit.-Authenticationparamètre. - Exemple pour les environnements de domaine (par défaut):
Enter-PSSession -ComputerName "RemotePC" -Authentication Negotiate - Exemple pour les environnements de groupe de travail (requiert des identifiants d'administrateur local de la machine distante):
$cred = Get-Credential Enter-PSSession -ComputerName "Remote_IP" -Authentication Basic -Credential $cred
Solution 4: autoriser le trafic non crypté (s'il n'utilise pas HTTPS)
Si vous vous connectez via HTTP (port 5985) et non HTTPS (port 5986), WinRM peut bloquer l'échange si les politiques de trafic non cryptées sont strictes.
- Ouvrez. PowerShell as an Administrator.
- Activer le trafic non chiffré sur le client:
Set-Item WSMan:\localhost\Client\AllowUnencrypted -Value $true - Activer le trafic non chiffré sur le serveur:
Set-Item WSMan:\localhost\Service\AllowUnencrypted -Value $true - Redémarrez le service WinRM:
Restart-Service WinRM
Il y a peut-être des erreurs.. Learn Microsoft