Invoke-WebRequest: proporcionar credenciales de proxy en PowerShell
Invoke-WebRequest tiene parámetros propios para las credenciales de proxy. Las credenciales de origen y el inicio de sesión correcto del navegador no las sustituyen.
Para una cuenta de proxy explícita, pase un objeto de credenciales a -ProxyCredential:
$proxyAccount = Get-Credential
Invoke-WebRequest -Uri https://example.com/ -Proxy http://proxy.example:8080 -ProxyCredential $proxyAccountSustituya el extremo por el servicio aprobado. Get-Credential solicita una cuenta en lugar de incrustar una contraseña en la línea de comandos. Esta cuenta va al intermediario; las credenciales de destino son un parámetro aparte y no pueden responder a un 407 del proxy.
Si el esquema de autenticación del proxy y la identidad del proceso admiten autenticación integrada, elija -ProxyUseDefaultCredentials. No lo combine con una credencial de proxy explícita en la misma solicitud.
Consulte la referencia de la versión de PowerShell que ejecuta el script. Windows PowerShell y PowerShell moderno difieren en implementación y disponibilidad de parámetros; las versiones admitidas también ofrecen -NoProxy para una solicitud directa explícita.
Cuando el mismo script se comporta distinto como tarea
Inspeccione las entradas relevantes de $PSDefaultParameterValues y la configuración de proxy que admite el proceso. Un perfil puede añadir al iniciar la sesión valores predeterminados de proxy específicos de un comando. Una tarea programada puede omitir ese perfil y ejecutarse con otra identidad, aunque el archivo del script no cambie.
Compare la URL de destino, el extremo elegido, el método de proxy requerido, la versión de PowerShell y las credenciales explícitas frente a las predeterminadas, manteniendo los secretos ocultos. Si la autenticación del proxy funciona y el destino devuelve 401, investigue ese inicio de sesión de destino en lugar de mover la contraseña del proxy al parámetro de credenciales de origen.