У меня есть сценарий, над которым я работаю, чтобы развернуть 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.
Любая помощь приветствуется.