none
認証proxy下でInvoke-WebRequest RRS feed

  • 質問

  • 認証proxy下でInvoke-WebRequestを使う場合は、どのようにproxyユーザとパスワードを設定すればよいでしょうか?

    Powershellは、4.0になります。

    2015年11月9日 8:41

すべての返信

  • // 試してないけど

    -ProxyCredential パラメータではないですか?

    Get-Helpコマンドレットを使えば、特定のコマンドのパラメータやその使い方を見られますよ。

    Get-Help -full Invoke-WebRequest

    2015年11月9日 8:53
  • こんな感じでやってもうまくいかないんですよね。

    $secPasswd=ConvertTo-SecureString "password" -AsPlainText -Force
    $myCreds=New-Object System.Management.Automation.PSCredential -ArgumentList "hogeuser",$secPasswd

    Invoke-WebRequest -Headers $Headers -Uri "https://hogehoge" -Proxy 'https://proxy.com:8080' -proxyCredential $myCreds

    Invoke-WebRequest : 競合する次のパラメーターが指定されているため、コマンドレットを実行できません: ProxyCredential および ProxyUseDefaultCredentials。ProxyCredential と ProxyUseDefaultCredentials のいずれかを指定して再試行してください

    2015年11月9日 9:08
  • チャブーンです。

    よくわからないですが、-headersと -proxyCredentialの両方を書いているからかもしれません。

    したのページで-headersのみの動作(事前に$Headersの内容定義がいりますが)で動いた、という記述がありますので、参考にしてみてはいかがでしょうか?

    http://stackoverflow.com/questions/27951561/use-invoke-webrequest-with-a-username-and-password-for-basic-authentication-on-t


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    2015年11月9日 9:12
  • ProxyUseDefaultCredentials:$false

    を明示的に追記してみては。

    2015年11月9日 9:28
  • proxyがhttpsを要求するなら、そもそもInvoke-WebRequest(というか.NETのWebReqeust)自体を使えないかも。

    The ServicePointManager does not support proxies of https scheme (.NET 1.1 SP1)

    2015年11月9日 10:29
  • proxyがhttpsを要求するなら、そもそもInvoke-WebRequest(というか.NETのWebReqeust)自体を使えないかも。

    The ServicePointManager does not support proxies of https scheme (.NET 1.1 SP1)

    すいません。

    proxyは、httpです

    2015年11月9日 10:35
  • 試してみましたが、やはり-Proxyを設定して、かつ -ProxyCredentialを指定した場合は

    -ProxyUseDefaultCredentials:$false を追加しないとエラーになります。お試しを

    2015年11月9日 11:01
  • 試してみましたが、やはり-Proxyを設定して、かつ -ProxyCredentialを指定した場合は

    -ProxyUseDefaultCredentials:$false を追加しないとエラーになります。お試しを

    ありがとうございます。実行してみました。

    Invoke-WebRequest -Uri "https://hogehoge" -Proxy 'https://proxy.com:8080' -proxyCredential $myCreds -ProxyUseDefaultCredentials:$false

    次のようなエラーがでてしまいます。

    Invoke-WebRequest : ERROR
    Cache Access Denied.
    The following error was encountered while trying to retrieve the URL: https://hogehoge/*
    Cache Access Denied.
    Sorry, you are not currently allowed to request https://hogehoge/* from this cache until you have authenticated yourself.
    Please contact the cache administrator if you have difficulties authenticating yourself or change your default password.

    2015年11月9日 11:10
  • チャブーンです。

    Proxy認証ですが、Windows統合認証でしょうか?(平文の)基本認証なのではないでしょうか?

    その場合ですが、したの情報の「Manually build the headers」のコードを試してみてはどうでしょうか?

    http://stackoverflow.com/questions/27951561/use-invoke-webrequest-with-a-username-and-password-for-basic-authentication-on-t

    追記:

    それと、実行したコードですが、ProxyのURIが「HTTPS」になっていますが、本当にHTTPSなのでしょうか?HTTPならば正しいURIを記載したほうがよろしいかと。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。


    2015年11月9日 11:28
  • ProxyのURIは誤記です。httpになります。

    Invoke-WebRequest -Uri "https://hogehoge" -Proxy 'http://proxy.com:8080' -proxyCredential $myCreds -ProxyUseDefaultCredentials:$false

    2015年11月10日 0:01