0

提前感谢您对此进行调查的任何人。

我目前正在尝试通过仅支持 MSI 文件进行部署的 Intune 部署 TeamViewer。但是,TeamViewer 有一个称为帐户分配的功能,它以可执行文件的形式出现。由于 Intune 不允许您部署 exe 文件,如果我错了,请纠正我。我使用了一个 PowerShell 脚本,该脚本将下载必要的文件,然后进行安装。

我的目标是将文件存储在像 onedrive 或 Dropbox 这样的云中。问题是公共链接没有直接指向文件作为它的重定向。

例如https://www.dropbox.com/x/xyzd/TeamViewer_Assignment.exe?dl=0 --> https://www.dropbox.com/x/xyzd/TeamViewer_Assignment.exe

或者

https://1drv.ms/u/s!Avjfi0upMYg9haNVTMPdoPGdstex --> https://1drv.ms/u/s/teamviewer.exe

如果两个链接都以文件扩展名 (.exe) 结尾,那么就没有问题。但我想使用 Teamviewer 链接(get.teamviewer.com/myhost 重定向https://download.teamviewer.com/u/id12345/TeamViewer.exe希望这会帮助更多的人。而不是拥有云存储帐户。

https://download.teamviewer.com/u/id12345/TeamViewer.exe也不是永久链接,有过期时间。

我尝试过的事情:

$url = "https://get.teamviewer.com/mycustomhost"
$output = "$PSScriptRoot\myhost.exe"
$start_time = Get-Date

Invoke-WebRequest -Uri $url -OutFile $output
Write-Output "Time taken: $((Get-Date).Subtract($start_time).Seconds) 
second(s)"

$url = "http://get.teamviewer.com/myhost"
$output = "$PSScriptRoot\myhost.exe"
$start_time = Get-Date

$wc = New-Object System.Net.WebClient
$wc.DownloadFile($url, $output)
#OR
(New-Object System.Net.WebClient).DownloadFile($url, $output)

Write-Output "Time taken: $((Get-Date).Subtract($start_time).Seconds) 
second(s)"

$rep=Invoke-WebRequest 
http://www.get.teamviewer.com/myhost -MaximumRedirection 
0 
$rep.Links | where {$_.innerText -eq "click here"} |select -expand href 

这些例子都没有奏效,我从网上的点点滴滴尝试了其他组合,但没有成功。

4

1 回答 1

1

您可以对所有示例使用以下 URI:

https://customdesign.teamviewer.com/download/version_12x/myhost/TeamViewerQS.exe

您可以通过以下方式在 Chrome 中获取此 URI 以供下载:

  1. 下载 TeamViewer
  2. 打开下载历史
  3. 右键单击 TeamViewer 下载条目并复制下载 URI。

编辑:

您可以使用以下命令解析下载站点的真实链接:

$downloadPage = Invoke-WebRequest -Uri https://get.teamviewer.com/myhost
$downloadLink = $request.ParsedHtml.getElementById('MasterBodyContent_btnRetry').href

现在您可以使用“$downloadLink”变量来下载包含任何脚本的可执行文件。如果 TeamViewer 的下载页面发生更改,您可能需要更改此设置。

只需在下载页面上搜索“重试”按钮的 ID。然后您可以编辑我的代码以获取适当的元素和属性。

于 2018-01-15T01:35:14.113 回答