Invoke-WebRequest: PowerShell でプロキシ資格情報を指定する
Invoke-WebRequest にはプロキシ資格情報専用のパラメーターがあります。接続先の資格情報やブラウザーのログイン成功はその代わりになりません。
明示的なプロキシ アカウントの場合は、資格情報オブジェクトを -ProxyCredential に渡します。
$proxyAccount = Get-Credential
Invoke-WebRequest -Uri https://example.com/ -Proxy http://proxy.example:8080 -ProxyCredential $proxyAccountエンドポイントは承認済みのサービスに置き換えます。Get-Credential はコマンド ラインにパスワードを埋め込む代わりにアカウントを要求します。このアカウントは中継役に送られます。宛先の資格情報は別のパラメーターであり、プロキシの 407 には応答できません。
プロキシの認証方式とプロセスの ID が統合認証をサポートしている場合は、代わりに -ProxyUseDefaultCredentials を選びます。同じ要求で明示的なプロキシ資格情報と組み合わせないでください。
スクリプトを実行する PowerShell のバージョンのリファレンスを確認します。Windows PowerShell と最新の PowerShell では実装とパラメーターの可用性が異なります。サポートされているバージョンでは、明示的な直接要求のために -NoProxy も提供されます。
同じスクリプトがタスクとして動作が変わる場合
関連する $PSDefaultParameterValues のエントリと、プロセスがサポートするプロキシ構成を確認します。プロファイルはセッション開始時に コマンド固有のプロキシ既定値 を追加できます。スケジュールされたタスクはそのプロファイルを省略して別の ID で実行されることがあり、スクリプト ファイルは変わっていません。
宛先 URL、選択されたエンドポイント、必要なプロキシ方式、PowerShell のバージョン、明示的な資格情報と既定の資格情報を比較し、シークレットは伏せたままにします。プロキシ認証が成功して宛先が 401 を返す場合は、プロキシのパスワードを接続元の資格情報パラメーターに移すのではなく、その宛先のログインを調査します。