gpt4 book ai didi

powershell - 如何使用Powershell System.Net.WebClient和自定义用户代理字符串保存 “browser-initiated download”文件?

转载 作者:行者123 更新时间:2023-12-02 23:39:41 25 4
gpt4 key购买 nike

启动EC2实例时,我正在AWS EC2 UserData部分中运行一些命令,并希望在启动时从Microsoft的https://www.microsoft.com/en-us/download/confirmation.aspx?id=40784(这是Visual Studio 2013的Visual C++可再发行组件包)中下载文件。

到目前为止,我有以下命令:

powershell -Command "$cli = New-Object 
System.Net.WebClient;$cli.Headers['User-Agent'] = 'Mozilla/5.0 (Windows NT
6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0
Safari/537.36';$cli.DownloadFile('https://www.microsoft.com/en-
us/download/confirmation.aspx?id=40784', 'C:\UserData\vcredist_arm.exe')"

它使用的是Powershell System.Net.WebClient方法,但看起来它正在下载HTML页面,而不是在先浏览到该页面时下载的可执行文件,然后浏览器询问您要将文件保存在何处。

如何使用Powershell下载实际的可执行文件,而不是 https://www.microsoft.com/en-us/download/confirmation.aspx?id=40784上的页面?

最佳答案

您提供的URL是HTTP页面,因此才下载该页面而不是exe。要解决此问题,您必须获得指向您要下载的文件的直接链接,通常页面会为您处理此问题,但是C#Webclient并未进行编码。

在这种情况下,您可以通过以下方式获得直接下载链接:

  • 单击Click here链接If your download does not start after 30 seconds, Click here中的
  • Click here下载链接复制到您要下载的产品,在这种情况下为https://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_arm.exe
  • 将其替换为webclient对象的https://www.microsoft.com/en-
    us/download/confirmation.aspx?id=40784
  • 关于powershell - 如何使用Powershell System.Net.WebClient和自定义用户代理字符串保存 “browser-initiated download”文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45623314/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com