Start-BitsTransfer 直接在传输本身暴露代理配置。只要 Windows BitsTransfer 模块可用,就可以按下面的方式提供一条显式通过身份验证的路由:

$transfer = @{
    Source = 'https://downloads.example.net/file.zip'
    Destination = 'C:\Downloads\file.zip'
    ProxyUsage = 'Override'
    ProxyList = 'proxy.example.net:8080'
    ProxyAuthentication = 'Negotiate'
    ProxyCredential = (Get-Credential)
    ErrorAction = 'Stop'
}
Start-BitsTransfer @transfer

其中的地址和本地路径只是示例。请选择代理支持的身份验证方法;本片段选用的是 Negotiate。Override 让作业改用传入的代理列表,而不是它默认的发现策略。

凭据提示为这个作业提供代理账户。从 WebClient 得到的绕过结论,并不能说明 BITS 是否需要身份验证。BITS 有各自的作业配置和身份验证交换过程。

-ErrorAction Stop 让调用方可以用 PowerShell 的 try/catch 流程处理 cmdlet 错误。报告传输失败时,保留原始错误记录。只匹配 “Proxy authentication is required” 这类英文提示,会把错误处理绑到渲染出来的消息上,而不是作业真正的错误信息。

相关文章