Powershell Webclient.DownloadFile().aspx文件赢得';t打开

Powershell Webclient.DownloadFile().aspx文件赢得';t打开,powershell,webclient-download,downloadfile,.aspxauth,aspxcombobox,Powershell,Webclient Download,Downloadfile,.aspxauth,Aspxcombobox,我第一次使用powershell。我学习了如何使用webclient下载文件,使用以下代码 $client = New-Object System.NET.Webclient $client.DownloadFile( $url, $path ) 这似乎很适合我最终要做的事情,即一次从一个网页下载多个文件。我在一个网站上尝试了这个方法,它的文件格式为.pfva文件,以PDF格式打开。没问题。这也是一个密码保护的网站 移动到我真正想要使用它的站点。同样,一个需要登录的站点,尽管我只是在浏览器上登

我第一次使用powershell。我学习了如何使用webclient下载文件,使用以下代码

$client = New-Object System.NET.Webclient
$client.DownloadFile( $url, $path )
这似乎很适合我最终要做的事情,即一次从一个网页下载多个文件。我在一个网站上尝试了这个方法,它的文件格式为.pfva文件,以PDF格式打开。没问题。这也是一个密码保护的网站

移动到我真正想要使用它的站点。同样,一个需要登录的站点,尽管我只是在浏览器上登录,然后运行webclient。可能是我不必在命令脚本中通过身份验证的原因

此网站的文件格式为.aspx文件。它们将作为PDF文件打开。我只需点击文件,保存或打开,它就可以自然地作为PDF文件工作。但是当我使用webclient.download文件时,它会下载到正确的位置…但是我在尝试打开它时出错

“Adobe无法打开文件。它的编码不正确”…类似于这些内容。因为我在工作,所以我现在不能把消息传出去。下载的URL采用以下格式

https://www.WebsiteABC.com/ShowDocument.aspx?DocPath=%7e%5cDocument%5cb75c6093-697a-4e59-bc26-fa2eb24f57f7%5cAUTHORIZATION.PDF
为什么它不打开!?!有办法解决这个问题吗。任何帮助都将不胜感激。谢谢你


哦,顺便说一句,我将$path设置为计算机目录中的.PDF文件…因为我读到应该提供文件的路径,而不仅仅是目录。

看起来您的脚本在大多数情况下都可以工作

我找到了一个页面,告诉用户代理HTTP头字段对服务器可能很重要,所以请尝试以下方法:

$userAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2;)"
$url = "https://www.adobe.com/enterprise/pdfs/pdfarchiving.pdf"
$path = "c:\test.pdf"

$client = New-Object System.NET.Webclient
$client.Headers.Add("user-agent", $userAgent)
$client.DownloadFile( $url, $path )

您的文件是实际下载的,还是0字节?你能将它与你手动下载的文件进行比较吗?你还应该检查下载文件的内容,它可能是一个带有代码的网页,可以重定向到实际的PDF