如何使用 powershell 下载接受许可证的文件

How to download a file accepting license using powershell

我正在尝试使用 powershell 从下面 link 下载软件包。 https://www.tenable.com/downloads/nessus-agents 我也没有这些包的直接 link 当我点击下载时它要求同意。我能够使用下面显示的命令在 Linux 上完成它。请在 windows.

中告诉我如何做
"wget  --no-check-certificate --post-data='accept="I accept the terms of this license"&x=""&sid=5mcia8gchg28attkc9oarah153&p=NessusAgent-7.4.2-amzn.x86_64.rpm' 'https://www.tenable.com/downloads/nessus-agents' -O NessusAgent-7.4.2-amzn.x86_64.rpm"

无法找到任何使用 invoke-webrequest 尝试过的选项

调用-RestMethod -Uri 'https://www.tenable.com/downloads/nessus-agents'

这与 Powershell 中的语法类似,但只是下载内容为 "OK" 的文件。

$body = 'accept="I accept the terms of this license"&x=""&sid=5mcia8gchg28attkc9oarah153&p=NessusAgent-7.4.2-amzn.x86_64.rpm' 
$uri = 'https://www.tenable.com/downloads/nessus-agents'
$resp = Invoke-WebRequest -Method Post -Body $body -Uri $uri -OutFile .\NessusAgent-7.4.2-amzn.x86_64.rpm

也许 "sid" 变量需要根据请求进行更改。

有一个表示接受的 GET 查询字符串参数。

只需将 i_agree_to_tenable_license_agreement=true 添加到您的查询字符串参数中即可。

Invoke-WebRequest -Uri 'https://www.tenable.com/downloads/api/v1/public/pages/nessus-agents/downloads/9762/download?i_agree_to_tenable_license_agreement=true' -OutFile 'NessusAgent-7.4.2-x64.msi'

您可以像这样从 API 端点轻松获取其他文件的 ID:

(Invoke-WebRequest -Uri 'https://www.tenable.com/downloads/api/v1/public/pages/nessus-agents' | ConvertFrom-Json).downloads | Format-Table -AutoSize