【发布时间】:2015-07-08 16:18:46
【问题描述】:
我到处寻找这个问题的答案,但我想我的谷歌忍者技能可能有所欠缺。
我正在尝试在 Powershell 中运行一个简单的命令来下载一个字符串(实际上,我想下载一个 msi 并运行它 - 但我已将问题缩小到一个简单的示例)。我正在运行的脚本是:
$client = New-Object System.Net.WebClient
$client.DownloadString("http://google.com") | Out-File google.html
我得到的错误是:
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
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);
}
}
这在我的机器上有效——所以我知道问题不是 .NET Framework。奇怪的是,我可以从 Powershell 调用 exe 并且它可以工作。
我已将其范围缩小为 Powershell 的问题,但我终其一生都无法弄清楚是什么。我显然已经对我的机器做了一些事情,以中断 Powershell 与互联网的连接,但可以与比我更了解幕后发生的事情的人一起做。
请注意这与 PS Remoting 无关。我不认为,但我不想使用 PS Remoting。我不认为...
【问题讨论】:
-
个人防火墙(限制每个进程访问的防火墙)是否可能干扰网络通信?
-
Invoke-WebRequest -Uri 'http://www.google.com/' -OutFile 'google.html'呢? -
@RafałSaltarski 如果您将该评论添加为答案,我会将其标记为已回答。大喊大叫。虽然,是什么原因造成的? AFAIK,我的用户 是 管理员用户,所以当我以管理员身份运行 Powershell 时,不应该 正常工作 吗?
-
@BaconBits 出于好奇,我尝试了您的解决方案,但是它抛出了同样的错误。