Я искал повсюду ответ на этот вопрос, но я думаю, что, возможно, у меня не хватает навыков ниндзя 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. Я не думаю ...
Возможно ли, что персональный межсетевой экран (который ограничивает доступ к процессу) мешает сетевым связям? – PeterK
Как насчет 'Invoke-WebRequest -Uri 'http://www.google.com/' -OutFile 'google.html''? –
@ RafałSaltarski Если вы добавите этот комментарий в качестве ответа, я помету его как ответ. Отличный крик. Хотя, что бы это вызвало? AFAIK, мой пользователь * является * администратором, поэтому, когда я запускаю Powershell в качестве администратора, не следует ли это просто работать *? – simonlchilds