2

我正在研究SCCM Application Packager配方,以自动化JetBrains Toolbox的下载、打包和部署。我正在尝试使用 Invoke-WebRequest cmdlet 将外部文本为“直接链接”的 href 值分配给名为 $LinkPath 的变量

$LinkPath = ((Invoke-WebRequest https://www.jetbrains.com/toolbox/download/download-thanks.html?platform=windows) | Select-Object -ExpandProperty Links | Where-Object -Property outerText -eq "direct link").href

这会不断返回 URL:

about://data.services.jetbrains.com/products/download?code=ALL&platform=windows

当我查看返回的对象时,我看到了相同的 URL:

innerHTML                  : direct link
innerText                  : direct link
outerHTML                  : <A id=download-link href="about://data.services.jetbrains.com/products/download?code=ALL&a
                             mp;platform=windows" data-release-download-link="">direct link</A>
outerText                  : direct link
tagName                    : A
id                         : download-link
href                       : about://data.services.jetbrains.com/products/download?code=ALL&amp;platform=windows
data-release-download-link :

如何分配在您点击该页面时自动下载的安装程序的 URL - 或 - 当您在浏览器中检查“直接链接”链接的属性时获得的 URL(当前为https://download.jetbrains。 com/toolbox/jetbrains-toolbox-1.14.5179.exe)到 $LinkPath 变量而不是 about://data.services.jetbrains.com/products/download?code=ALL&platform=windows ?

4

1 回答 1

0

我发现了一个巧克力项目,它以稍微不同的方式做到这一点。它使用这里的 Json 数据来确定版本:

https://data.services.jetbrains.com/products/releases?code=TBA&latest=true&type=release

我使用 ConvertFrom-Json 从上面的页面获取当前下载 URL:

$releases = 'https://data.services.jetbrains.com/products/releases?code=TBA&latest=true&type=release'
$json = Invoke-WebRequest $releases | ConvertFrom-Json
$LinkPath = $json.TBA.downloads.windows.link
于 2019-06-07T18:55:03.957 回答