2015-07-20 158 views
0

嘗試在PowerShell上安裝dnvm時出現了一個非常奇怪的錯誤。實際上,我會在嘗試下載任何內容時遇到此錯誤,例如「wget」會產生類似的錯誤。下載文件時Powershell出現奇怪的錯誤

我首先想到的是我沒有執行權限,但是在管理員shell中運行這個權限+我更改了安全策略。

然後我發現PS沒有訪問互聯網,所以我調整了防火牆,甚至將PS添加到允許的程序中。沒有運氣!

現在奇怪的是,我可以通過IE下載文件就好了。

這是錯誤,我得到

Exception calling "DownloadString" with "1" argument(s): "An exception occurred during a WebClient request." 
At line:1 char:17 
+ &{$Branch='dev';iex ((new-object net.webclient).DownloadString('https://raw.gith ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
    + FullyQualifiedErrorId : WebException 

任何人一樣的想法?

此外,這是一臺在AWS上運行的機器。

enter image description here

+0

什麼' $ Error [0] .Exception.InnerException'說? –

+0

'PS C:\ temp> $ Error [0] .Exception.InnerException WebClient請求期間發生異常。' – flyandi

+0

檢查'raw.githubusercontent.com'上是否存在證書錯誤,您可能需要關閉嚴格在WebClient實例上檢查證書。還要檢查證書是什麼,可能是你正在MITM'd,這是非常危險的。 – Vesper

回答

0

這是一個在黑暗中拍攝,但首先想到的是代理設置。

System.Net.WebClient不會自動拾取IE的代理配置,但你應該能夠迫使它這樣做的:

$WebClient = New-Object System.Net.WebClient 
$WebProxy = [System.Net.WebProxy]::GetDefaultProxy() 
$WebClient.Proxy = $WebProxy 
$WebClient.DownloadString($url) 

或與您的非常緊湊的語法:

&{$Branch='dev';($w=New-Object Net.WebClient).Proxy=[Net.WebProxy]::GetDefaultProxy();iex $w.DownloadString($url)} 
+0

這是一個相當不錯的鏡頭,但是這臺機器根本不使用代理。我甚至在IE中敲掉了自動代理設置,它仍然可用(來自IE)。這是我爲$ WebProxy結果:'PS C:\ TEMP> $ WebProxy 地址: BypassProxyOnLocal:假 BypassList:{} 憑據: UseDefaultCredentials:假 BypassArrayList:{} ' – flyandi