2015-04-29 3 views
3

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

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

+0

Возможно ли, что персональный межсетевой экран (который ограничивает доступ к процессу) мешает сетевым связям? – PeterK

+0

Как насчет 'Invoke-WebRequest -Uri 'http://www.google.com/' -OutFile 'google.html''? –

+0

@ RafałSaltarski Если вы добавите этот комментарий в качестве ответа, я помету его как ответ. Отличный крик. Хотя, что бы это вызвало? AFAIK, мой пользователь * является * администратором, поэтому, когда я запускаю Powershell в качестве администратора, не следует ли это просто работать *? – simonlchilds

ответ

4

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

Смежные вопросы