2013-12-09 261 views
5

以下は、Webプロキシを使用していないマシンで正常に動作します。Invoke-RestMethodでデフォルトのWebプロキシを使用するにはどうすればよいですか?

return Invoke-RestMethod 
    -Uri $server$url 
    -ContentType $contentType 
    -Headers $headers 
    -Method $method 
    -UseDefaultCredentials 

注:$server$urlHTTPSアドレス、https://somewhere.example.com/api/data

ような何か今、私はそれがで動作するように取得しようとしているあります企業の環境ですが、401エラーが発生しています。

これは、プロキシの.pacファイルで定義されている企業のプロキシが存在するためだと思います。 Internet Explorerから$server$url URIにアクセスできることを確認しました。 Invoke-RestMethodコマンドを同じ設定で使用するには、何が必要ですか?

私は-proxyパラメータ

$proxy = [System.Net.WebRequest]::GetSystemWebProxy() 
$proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials 

return Invoke-RestMethod 
    -Uri $server$url 
    -ContentType $contentType 
    -Headers $headers 
    -Method $method 
    -UseDefaultCredentials 
    -Proxy $proxy 
    -ProxyUseDefaultCredentials 

を追加しようとしているが、-proxyパラメータは、URIないIWebProxyオブジェクトを期待しています。

答えて

2

編集:誤ったアドレスは、コマンド、もはや作品を提供し、代わりにプロキシアドレスを提供するアドレスが返されたら... は、この使用しないでください:thisに コードスニペットを使用して、私は、プロキシURIを取得できていますPowerShellのからのような:URIが無効であるが、一度正しいURIが提供され、STのときそれはまだ提供さURI(またはスロー)を返し

[System.Net.WebRequest]::GetSystemWebProxy().GetProxy("http://www.google.com") 

を:

[System.Net.WebRequest]::DefaultWebProxy.GetProxy([uri]("http://www.google.com")) 

は、代わりにこれを使用再び働く芸術。

+0

うーん...私の場合、URLはhttpsアドレスです。 GetSystemWebProxy()。GetProxy() 'は、ServicePointManagerがhttps scheme_を持つプロキシをサポートしていないことを返します。 – shamp00

5

受け入れられた回答が私を始めました。ここにフルバージョンがあります

関連する問題