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 $proxyAccount

Sustituya 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.

Artículos relacionados