Вопрос:

Загрузить файл Powershell с URL-адреса перенаправления - TeamViewer & Intune

powershell intune teamviewer

509 просмотра

1 ответ

17 Репутация автора

Заранее благодарю всех, кто взглянул на это.

В настоящее время я пытаюсь развернуть TeamViewer через Intune, который поддерживает только файлы MSI для развертывания. Тем не менее, TeamViewer имеет функцию, называемую назначением учетной записи, которая поставляется в виде исполняемого файла. Поскольку Intune не позволяет вам развертывать исполняемые файлы, поправьте меня, если я ошибаюсь. Я привел к использованию сценария 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 

Ни один из этих примеров не сработал, я попробовал другую комбинацию из кусочков по сети, но не пошел.

Автор: Alfonso Jr Источник Размещён: 11.01.2018 08:58

Ответы (1)


1 плюс

66 Репутация автора

Вы можете использовать следующий URI для всех ваших примеров:

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

Вы можете получить этот URI для загрузки в Chrome следующим образом:

  1. Скачать TeamViewer
  2. Откройте историю загрузок
  3. Щелкните правой кнопкой мыши запись для загрузки TeamViewer и скопируйте URI загрузки.

Редактировать:

Вы можете проанализировать сайт загрузки для реальной ссылки с помощью следующей команды:

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

Теперь вы можете использовать переменную $ downloadLink для загрузки исполняемого файла любым из ваших скриптов. Возможно, вам придется изменить это, если изменится страница загрузки TeamViewer.

Просто найдите идентификатор кнопки «Повторить попытку» на странице загрузки. Затем вы можете отредактировать мой код, чтобы получить соответствующий элемент и атрибут.

Автор: Leo Размещён: 15.01.2018 01:35
Вопросы из категории :
32x32