Sharepoint Net Веб-клиент всегда получает через вывод PowerShell HTML - PullRequest
0 голосов
/ 04 августа 2020

У меня есть сценарий, над которым я работаю, чтобы развернуть BGInfo на большом списке устройств, это в основном POS-терминалы - актуальны и появятся позже.

Моя проблема в том, что у меня есть репозиторий 6 файлов, которые мне нужно отправить sh на эти устройства, номера версий Powershell сильно различаются, а наименьшее значение - 2.0, поэтому я не могу использовать invoke-webrequest для загрузки файлов из SharePoint, мне нужно использовать WebClient .DownloadFile для этого действия, проблема с моим явно базовым c скриптом, похоже, выводит файлы как почти идентичные HTML файлы, а не мои файлы, которые я получаю из URL-адреса, если я помещаю его непосредственно в браузер.

Я пробовал тот же скрипт в прямом URL-адресе Google Диска, и он работает некоторое время, но в конечном итоге теряет токен Auth. Итак, очевидно, что с URL-адресами Sharepoint происходит какая-то маскировка, которую я не понимаю.

Пример сценария и суть проблемы (

$Zealpath = "C:\ProgramData\Zeal"
If(!(test-path $Zealpath))
{
      New-Item -ItemType Directory -Force -Path $Zealpath
}

If(!(test-path $BGIpath))
{
      New-Item -ItemType Directory -Force -Path $BGIpath
}

$BGIurl = "https://zealconsultants.sharepoint.com/:u:/s/Software/EfoalXiCqhtFgAvuCbtY9RsB2WPSTFwsJ2gtvV2bg0rQww?e=yvZhIW&download=1"
$BGIoutput = "C:\ProgramData\Zeal\BGInfo\bginfo.exe"

$wc = new-object System.Net.WebClient
$wc.Headers.Add("User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36")
$wc.DownloadFile($BGIurl, $BGIoutput)        #deploy to .exe

Так что да, прямой URL-адрес загружает BGInfo .exe, и запуск его через PowerShell выведет файл HTML.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 04 августа 2020

Проблема здесь в URL. Кажется, что не указывает на файл.

Также убедитесь, что создан весь путь. Если папка BGInfo не существует, функция загрузки завершится ошибкой.

Попробуйте следующее:

$Zealpath = "C:\ProgramData\Zeal\BGInfo"
If(-not (test-path $Zealpath -PathType Container))
{
      New-Item -ItemType Directory -Force -Path $Zealpath
}

$BGIurl = "https://zealconsultants.sharepoint.com/sites/Software/Shared%20Documents/Atera%20Scripted%20Deployments/BGInfo/Bginfo.exe"
$BGIoutput = "C:\ProgramData\Zeal\BGInfo\bginfo.exe"

$wc = new-object System.Net.WebClient
$wc.Headers.Add("User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36")
$wc.DownloadFile($BGIurl, $BGIoutput)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...