我正在嘗試使用 powershell 在幾臺計算機上自動更新 KeePass,所以我對某種從 sourceforge 自動下載最新版本的方法很感興趣,但是我無法讓它作業。我通過谷歌搜索看到了很多參考資料,但沒有一個對我有用。我目前正在嘗試這個:
$url=https://sourceforge.net/projects/keepass/files/latest/download
#$url=https://sourceforge.net/projects/keepass/files/KeePass 2.x/2.49/KeePass-2.49-Setup.exe
Invoke-WebRequest -Uri $url -OutFile $env:USERPROFILE'\Downloads\KeePass2-Latest.exe'
這兩者都下載 Web 的頁面檔案,而不是安裝程式本身。
根據此 Sourceforge 帖子“常規下載鏈接將起作用,只要下載功能能夠遵循重定向,并且看起來不是瀏覽器源(例如,沒有類似瀏覽器的 User-Agent String ),它將簡單地重定向到檔案本身。 ”
但是它對我不起作用,我沒有指定任何 UserAgent,我什至嘗試將其-UserAgent $null用作引數,但沒有運氣。
有沒有辦法使用命令列/Powershell 以編程方式從 sourceforge 下載?
uj5u.com熱心網友回復:
根據檔案,默認的用戶代理Invoke-WebRequest類似于:
Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.15063; en-US) PowerShell/6.0.0
這可能會被https://sourceforge.net/解釋為瀏覽器用戶代理,因此可能不是立即重定向的好選擇。
嘗試任何自定義字串,如StackOverflow:
Invoke-WebRequest -UserAgent "StackOverflow" -Uri https://sourceforge.net/projects/keepass/files/latest/download -OutFile $env:USERPROFILE'\Downloads\KeePass2-Latest.exe'
這將起作用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/316432.html
