Invoke-WebRequest 未下载正确的 exe 文件

Invoke-WebRequest not downloading proper exe file

使用 Powershell 4.0 版我正在尝试以编程方式下载 Firefox 浏览器:

$uri = "https://www.mozilla.org/en-US/firefox/new/?scene=2"
$out = "C:\Users\bhatsubh\Downloads\Firefox Setup Stub 48.0.2.exe"
Invoke-WebRequest -Uri $uri -OutFile $out

但它没有下载正确的文件。相反,该文件是错误的,大小为 65 KB。

当我在网络浏览器中复制粘贴 URL 时,下载会自动开始,并下载大小为 237 KB 的正确文件。

该站点使用 javascript 开始下载,因此您得到的错误文件实际上是 HTML 页面。查看其源代码,我们可以看到设置 "stub":

的实际 link

https://download.mozilla.org/?product=firefox-stub&os=win&lang=en-US

也可以下载完整的安装程序:

https://download.mozilla.org/?product=firefox-latest&os=win&lang=en-US

这是适合您的解决方案:

使用此命令:Invoke-WebRequest $URL -OutFile 'c:\local-name.exe' 问题出在您的 URL 上。您使用的 url 不是指向原始 exe 的确切文件。 因此,为了获得正确的 URL,请按照以下步骤操作

  1. 开始下载所需的 exe 并在 Chrome 浏览器中取消该下载
  2. 转到下载并右键单击并单击“复制 link 地址”并将该值设置为 $URL 变量并重试。这适用于大多数情况。