sim*_*lds 4 powershell powershell-4.0
我到处寻找答案,但我想也许我的谷歌忍者技能缺乏.
我试图在Powershell中运行一个简单的命令,下载一个字符串(实际上,我想下载一个msi并运行它 - 但我已经将问题缩小到一个简单的例子).我正在运行的脚本是:
$client = New-Object System.Net.WebClient
$client.DownloadString("http://google.com") | Out-File google.html
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
Exception calling "DownloadString" with "1" argument(s): "Unable to connect to the remote server"
At line:1 char:1
+ $client.DownloadString("http://google.com") | Out-File google.html
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : WebException
Run Code Online (Sandbox Code Playgroud)
PSVersion = 4.0
我在同事的PC上运行了这个脚本(PSVersion = 3.0),它运行得很好.所以我知道代码有效.我还在C#控制台应用程序中重新创建了此代码,如下所示:
static void Main(string[] args)
{
using(var client = new System.Net.WebClient())
{
var content = client.DownloadString("http://google.com");
File.WriteAllText("D:\\google.html", content);
}
}
Run Code Online (Sandbox Code Playgroud)
这适用于我的机器 - 所以我知道这不是.NET Framework的问题.奇怪的是,我可以exe从Powershell 打电话给它并且它有效.
我已经把它缩小到与Powershell有关的问题,但我不能为我的生活找到解决办法.我显然已经为我的机器做了一些事情,以便打破Powershell与互联网的连接,但可以与一个比我更了解幕后发生的事情的人做些什么.
请注意这与PS Remoting无关.我不认为,但我不是想使用PS Remoting.我不认为......
您是否将PowerShell作为其他帐户运行(例如管理员)?也许该帐户的代理设置与您的普通帐户不同?也许在下载之前尝试设置$ client.Proxy = $ null,看看它是否有帮助.
| 归档时间: |
|
| 查看次数: |
6076 次 |
| 最近记录: |