2017-08-10 4 views
2

EC2インスタンスを起動するときに、AWS EC2 UserDataセクションでいくつかのコマンドを実行しています。開始時にhttps://www.microsoft.com/en-us/download/confirmation.aspx?id=40784(Visual C++再配布可能パッケージ、Visual Studio 2013用)からMicrosoftからファイルをダウンロードします。Powershell System.Net.WebClientとカスタムユーザーエージェント文字列を使用して「ブラウザ起動ダウンロード」ファイルを保存する方法は?

私はこれまで、次のコマンドを持っている:

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ページをダウンロードしているように見える

ページが最初に表示され、ブラウザはファイルの保存先を尋ねます。

https://www.microsoft.com/en-us/download/confirmation.aspx?id=40784のページではなく、実際の実行ファイルをPowershellでダウンロードするにはどうすればよいですか?

答えて

2

あなたが提供しているURLはHTTPページなので、そのページはダウンロードしていますが、exeではダウンロードしていません。この問題を回避するには、ダウンロードするファイルへの直接リンクを取得する必要があります。通常はページがこれを処理しますが、C#Webクライアントはそれを行うためにコード化されていません。あなたがでdirectdownloadリンクを取得することができます。この場合

  1. Click hereリンクIf your download does not start after 30 seconds, Click here
  2. でコピーし、この場合https://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_arm.exe
  3. でダウンロードしたい製品に Click hereダウンロードリンクをクリックします
  4. webclientオブジェクトの代わりにhttps://www.microsoft.com/en- us/download/confirmation.aspx?id=40784を使用してください。
関連する問題