Powershell не может подключиться к Интернету вообще

Я везде искал ответ на этот вопрос, но думаю, что, возможно, мои навыки ниндзя в Google отсутствуют.

Я пытаюсь запустить простую команду в 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

Я запустил этот скрипт на компьютере коллеги (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. И странно, я могу позвонить этому exe от Powershell и все работает.

Я сузил это до того, чтобы быть проблемой с Powershell, но я не могу на всю жизнь решить, что. Я, очевидно, сделал что-то с моей машиной, чтобы разорвать подключение Powershell к Интернету, но мог бы сделать с кем-то, кто знает больше, чем я, о том, что происходит за кулисами.

Обратите внимание, что это не имеет ничего общего с PS Remoting. Я не думаю, но я не пытаюсь использовать PS Remoting. Я не думаю...

1 ответ

Решение

Вы используете PowerShell от имени другой учетной записи (например, от имени администратора)? Может быть, настройки прокси этой учетной записи отличаются от настроек обычной учетной записи? Возможно, попробуйте установить $client.Proxy = $null перед загрузкой и посмотреть, поможет ли это.

Другие вопросы по тегам