【问题标题】:Powershell unable to connect to internet at allPowershell根本无法连接到互联网
【发布时间】: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 出于好奇,我尝试了您的解决方案,但是它抛出了同样的错误。

标签: powershell powershell-4.0


【解决方案1】:

您是否以不同的帐户(例如管理员)运行 PowerShell?也许该帐户的代理设置与您的普通帐户不同?也许在下载之前尝试设置 $client.Proxy = $null 看看是否有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多