Corrección de error WinRM: Código de estado de redirección HTTP no soportado
Descripción del error
Este error ocurre cuando un cliente de administración remota de Windows (WinRM) intenta conectarse a un servidor o punto final remoto, pero el servidor de destino redirige el tráfico (generalmente a través de un código de estado HTTP 301, 302 o 307) a una URL o puerto HTTPS diferente. Por defecto, el protocolo WinRM trata las redirecciones HTTP como un riesgo de seguridad y las prohíbe explícitamente. Debido a que WinRM se niega a seguir el enlace de redirección, la conexión falla inmediatamente. Este problema ocurre con frecuencia cuando los administradores configuran redirecciones globales de IIS en un servidor, usan balanceadores de carga que forzan automáticamente el tráfico HTTP a HTTPS o escriben el bloque de direcciones equivocado en sus scripts de automatización.
Soluciones paso a paso
Método 1: Evita las redirecciones conectándose directamente al punto final HTTPS
La forma más segura de solucionar este problema es evitar la redirección por completo dirigiéndose directamente a la URL HTTPS final.
- Abre la consola de PowerShell o el script de administración.
- Localizar el comando que causa el error (generalmente
Enter-PSSession,New-PSSession, oInvoke-Command) y de la Comisión). - Cambiar el parámetro del protocolo de conexión de HTTP a HTTPS, y añadir explícitamente el puerto HTTPS correcto (por defecto es 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:
- Si está utilizando un URI de conexión específico, asegúrese de que comience explícitamente con
https://y incluye el nombre de dominio correcto para que coincida con el certificado SSL del servidor.
Método 2: Modificar las reglas de redirección de IIS en el servidor de destino
Si controla el servidor remoto, es probable que una regla de redirección HTTP global en los Servicios de Información de Internet (IIS) rompa WinRM. Debe excluir el directorio virtual WinRM de la regla de redirección.
- Inicie sesión en el servidor remoto de Windows que causa el error.
- Haga clic en el Start Menu, tipo IIS Manager, y abrirlo.
- En la izquierda. Connections Pane, expanda su nodo del servidor y haga clic en Sites, luego seleccione el sitio web que aloja sus reglas de redirección (generalmente el Default Web Site ) y de la Comisión).
- En el panel central, haga doble clic en HTTP Redirect.
- Si redirige todas las solicitudes a un sitio HTTPS, debe agregar una excepción para la ruta WinRM.
- To do this using web.config configuration rather than the GUI, open the website root folder (usually
C:\inetpub\wwwrootY abre elweb.configel archivo. - Añadir un
<location>Regla de ruta para desactivar el redireccionamiento para elPowerShell- ¿ Qué ?wsmanlas rutas:<location path="PowerShell"> <system.webServer> <httpRedirect enabled="false" /> </system.webServer> </location> - Guarde el archivo y reinicie IIS ejecutando
iisreseten un Prompt de comandos administrativo.
Método 3: Habilitar la bandera "Permitir redireccionamiento" en las sesiones de PowerShell
Si debe permitir la redirección debido a su infraestructura de red o la configuración del balanceador de carga, puede instruir explícitamente a su opción de sesión de cliente WinRM para permitir las redirecciones.
- Abra su script o consola de PowerShell.
- Definir un nuevo objeto de opción de sesión WinRM y configurar el
AllowRedirectionpropiedad a verdad.$SessionOptions = New-PSSessionOption -AllowRedirection - Pasa este objeto de opción a tu comando de conexión usando el
-SessionOptionel parámetro.New-PSSession -ComputerName "Server01" -SessionOption $SessionOptions - Nota: WinRM solo seguirá la redirección si está utilizando un formato URI de conexión explícito o credenciales explícitas junto con esta opción.
Método 4: Actualizar las configuraciones de SPN y Kerberos
Si el error de redirección es un síntoma engañoso de un fallo de autenticación de Kerberos en el enrutamiento a través de un alias DNS genérico, establecer un Nombre Principal de Servicio (SPN) puede resolverlo.
- Abrir un Prompt de comandos como administrador en su controlador de dominio de Active Directory o máquina de administración.
- Compruebe los SPN existentes para su servidor de destino ejecutando:
setspn -L Server01 - Si el servidor utiliza un alias DNS o un nombre de host personalizado, registre el WSMan SPN manualmente para vincularlo correctamente a la cuenta del equipo:
setspn -S WSMAN/Server01 Server01setspn -S WSMAN/://yourdomain.com Server01 - Reinicie el servicio WinRM en la máquina remota ejecutando
Restart-Service WinRMen PowerShell.
Puede haber algunos errores.. Learn Microsoft