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 перед загрузкой и посмотреть, поможет ли это.