Cómo arreglarlo "El cliente WinRM no puede procesar la solicitud. La bandera que especifica el mecanismo de autenticación a utilizar es incorrecta".
Esta guía completa proporciona la descripción y una resolución paso a paso del error de identificación de identificación de Windows Remote Management (WinRM).
Descripción del error
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.
Causas comunes
- Disabled Authentication Providers: El cliente está tratando de usar Kerberos, Negociar o CredSSP, pero ese proveedor específico está desactivado en la configuración 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 lista. - Incorrect Connection Flags: El cmdlet o aplicación de PowerShell que inicia la conexión está forzando explícitamente un tipo de autenticación que el servidor se niega a aceptar.
- HTTPS/HTTP Confusion: Intentar pasar credenciales no cifradas a través de una conexión HTTP no cifrada cuando la política del servidor exige estrictamente HTTPS o tráfico cifrado.
Soluciones paso a paso
Siga estas soluciones para resolver el problema. Necesitará privilegios de administrador tanto en el cliente como en las máquinas remotas.
Solución 1: Habilitar los tipos de autenticación necesarios
You must ensure both the client and server have the required authentication protocols enabled (usually Negotiate ¿ Y qué ? Kerberos ) y de la Comisión).
- Abierto. PowerShell as an Administrator en la máquina del cliente.
- Ejecute el siguiente comando para comprobar la configuración actual de autenticación del cliente:
Get-ChildItem WSMan:\localhost\Client\Auth - Mira la salida.
Negotiate- ¿ Qué ?Kerberosestá configurado para...False, habilitarlas ejecutando:Set-Item WSMan:\localhost\Client\Auth\Negotiate -Value $true Set-Item WSMan:\localhost\Client\Auth\Kerberos -Value $true - Repita el proceso para la configuración del lado del servicio/servidor si está configurando la máquina remota:
Set-Item WSMan:\localhost\Service\Auth\Negotiate -Value $true Set-Item WSMan:\localhost\Service\Auth\Kerberos -Value $true - Reinicie el servicio WinRM para aplicar los cambios:
Restart-Service WinRM
Solución 2: Configurar hosts de confianza (para entornos de grupo de trabajo)
Si los ordenadores no están en el mismo dominio de Active Directory, la máquina cliente rechazará la conexión a menos que el servidor sea de confianza explícita.
- Abierto. PowerShell as an Administrator en la máquina del cliente.
- Agregue la dirección IP o el nombre de host del equipo remoto a su lista de hosts de confianza:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "REMOTE_COMPUTER_IP_OR_NAME"(Nota: puede utilizar `
to trust all hosts if you are in a secure private network, though this is less secure:Conjunto de elementos WSMan:\localhost\Client\TrustedHosts -Value " " `) - Presione. Y y golpear. Enter cuando se le solicite que confirme los cambios.
Solución 3: especifique explícitamente el tipo de autenticación en su comando
Al iniciar la conexión remota, dicte manualmente la bandera de autenticación en lugar de dejar que Windows adivine.
- Cuando se usa
Enter-PSSession- ¿ Qué ?Invoke-Command, apéndice el-Authenticationel parámetro. - Ejemplo de entornos de dominio (por defecto):
Enter-PSSession -ComputerName "RemotePC" -Authentication Negotiate - Ejemplo de entornos de grupo de trabajo (requiere credenciales de administrador local de la máquina remota):
$cred = Get-Credential Enter-PSSession -ComputerName "Remote_IP" -Authentication Basic -Credential $cred
Solución 4: Permitir el tráfico no cifrado (si no se utiliza HTTPS)
Si se está conectando a través de HTTP (puerto 5985) y no HTTPS (puerto 5986), WinRM podría bloquear el intercambio si las políticas de tráfico no cifradas son estrictas.
- Abierto. PowerShell as an Administrator.
- Habilitar el tráfico no cifrado en el cliente:
Set-Item WSMan:\localhost\Client\AllowUnencrypted -Value $true - Habilitar el tráfico no cifrado en el servidor:
Set-Item WSMan:\localhost\Service\AllowUnencrypted -Value $true - Reinicie el servicio WinRM:
Restart-Service WinRM
Puede haber algunos errores.. Learn Microsoft