Webclient.DownloadFile().aspx文件无法打开

Joh*_*ers 3 powershell downloadfile .aspxauth aspxcombobox webclient-download

我第一次使用PowerShell.我已经学会了如何使用webclient下载文件,使用以下代码.

$client = New-Object System.NET.Webclient
$client.DownloadFile( $url, $path )
Run Code Online (Sandbox Code Playgroud)

这似乎很好地适用于我最终要做的事情,即一次从网页下载多个文件.我在一个站点上尝试了这个,该站点的文件格式为.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
Run Code Online (Sandbox Code Playgroud)

为什么不打开!?!有没有解决的办法.任何帮助,将不胜感激.谢谢!.

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

Ant*_*rin 6

看起来您的脚本适用于大多数情况.

我找到了这个页面,告诉用户代理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 )
Run Code Online (Sandbox Code Playgroud)