我到处都在寻找答案,但是我想也许我的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
我已经在同事的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才是问题所在。奇怪的是,我可以exe
从Powershell调用它,并且它可以正常工作。
我将其范围缩小到Powershell的问题,但是我无法终生解决。我显然已经对我的机器做了一些操作,以便断开Powershell与Internet的连接,但是可以与比我更了解幕后发生的事情的人来做。
请注意,这与PS Remoting无关。我不认为,但我没有尝试使用PS Remoting。我不认为...
您是否以其他帐户(例如管理员)身份运行PowerShell?也许该帐户的代理设置与您的普通帐户不同?也许尝试在下载之前设置$ client.Proxy = $ null,看看是否有帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句