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 の流れでコマンドレットのエラーを処理できます。転送の失敗を報告するときは、元のエラー レコードを保持してください。「Proxy authentication is required」のような英語の文言だけに一致させると、エラー処理がジョブの実際のエラー情報ではなく表示メッセージに結び付きます。

関連記事