Loan Chex, LLC Ответов: 1

Как я могу загрузить и выполнить несколько файлов через http|https с помощью .vbs?


На самом деле мне нужен скрипт vbs работающий со всеми платформами windows с новейшим методом VBsripting для этих функций:
Функция 1: Скачать через HTTP|HTTPS, то сохраните путь 'c:\driver.exe' с правами админа, потом запустить с driver.exe прав''

Функция 2: дождитесь завершения первого процесса, переходите к следующей функции

Функция 3: скачать через HTTP|HTTPS, то сохраните путь 'c:\vcredist.exe с правами администратора, затем запустите с правами 'vcredist.exe'

Функция 4: дождитесь завершения третьего процесса , а затем перейдите к следующей функции

Функция 5: скачать через HTTP|HTTPS, то сохраните путь 'c:\visualstudio.exe с правами администратора, затем запустите с правами 'visualstudio.exe'

Pls хорошая помощь будет оценена по достоинству

Что я уже пробовал:

Метод, который я пробовал до сих пор, не работает.
Редактировать CHill60 - ОП-код от комментария
    On Error Resume Next
    Set File = CreateObject("Microsoft.XMLHTTP")
    File.Open "GET", "https://aka.ms/vs/16/release/vc_redist.x86.exe", False
    'This is IE 8 headers
    File.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C; .NET4.0E; BCD2000; BCD2000)"
    File.send
    If Err.Number <> 0 Then
        Line = ""
        Line = Line & vbCrLf & ""
        Line = Line & vbCrLf & "Error getting file"
        Line = Line & vbCrLf & "=================="
        Line = Line & vbCrLf & ""
        Line = Line & vbCrLf & "Error " & Err.Number & "(0x" & Hex(Err.Number) & ") " & Err.Description
        Line = Line & vbCrLf & "Source " & Err.Source
        Line = Line & vbCrLf & ""
        Line = Line & vbCrLf & "HTTP Error " & File.Status & " " & File.statusText
        Line = Line & vbCrLf & File.getAllResponseHeaders
        wscript.echo Line
        Err.Clear
        wscript.Quit
    End If

    On Error GoTo 0

    Set BS = CreateObject("ADODB.Stream")
    BS.Type = 1
    BS.Open
    BS.Write File.responseBody
    BS.SaveToFile "%AppData%\vc_redist.x86.exe", 2

    'Execute File
    CreateObject("Shell.Application").ShellExecute "%AppData%\vc_redist.x86.exe"

Next
wscript.Sleep 1000

On Error Resume Next
Set File = CreateObject("Microsoft.XMLHTTP")
File.Open "GET", "https://aka.ms/vs/16/release/VC_redist.arm64.exe", False
'This is IE 8 headers
File.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C; .NET4.0E; BCD2000; BCD2000)"
File.send
If Err.Number <> 0 Then
    Line = ""
    Line = Line & vbCrLf & ""
    Line = Line & vbCrLf & "Error getting file"
    Line = Line & vbCrLf & "=================="
    Line = Line & vbCrLf & ""
    Line = Line & vbCrLf & "Error " & Err.Number & "(0x" & Hex(Err.Number) & ") " & Err.Description
    Line = Line & vbCrLf & "Source " & Err.Source
    Line = Line & vbCrLf & ""
    Line = Line & vbCrLf & "HTTP Error " & File.Status & " " & File.statusText
    Line = Line & vbCrLf & File.getAllResponseHeaders
    wscript.echo Line
    Err.Clear
    wscript.Quit
End If

On Error GoTo 0

Set BS = CreateObject("ADODB.Stream")
BS.Type = 1
BS.Open
BS.Write File.responseBody
BS.SaveToFile "%AppData%\VC_redist.arm64.exe", 2

'Execute File
CreateObject("Shell.Application").ShellExecute "%AppData%\VC_redist.arm64.exe"

Richard MacCutchan

- Метод, который я пробовал до сих пор, не работает."
Ну, поскольку мы не можем видеть ваш экран, невозможно сказать, почему. И кроме того, маловероятно, что вы получите права администратора таким образом. Честно говоря, это выглядит так, как будто вы пытаетесь взломать чью-то систему, так что вряд ли кто-то здесь поможет.

Loan Chex, LLC

В Резюме Об Ошибке Следующий
Set File = CreateObject("Microsoft.XMLHTTP")
Файл.Откройте "GET", "https://aka.ms/vs/16/release/vc_redist.x86.exe", ложь
'Это IE 8 заголовки
Файл.добавляет "пользователь-агент", далее "Mozilla/4.0 (совместимый; MSIE 8.0 для Windows 6.0; отель Trident/4.0; SLCC1; .Чистая среда CLR 2.0.50727; Медиа Центр PC 5.0; .ЧИСТАЯ СРЕДА CLR 1.1.4322; .ЧИСТАЯ СРЕДА CLR 3.5.30729; .ЧИСТАЯ СРЕДА CLR 3.0.30618; .Серии net4.0С; .Серии net4.0Е; BCD2000; BCD2000)"
Файл.Отправить
Если индикатор ERR.количество на < и gt; 0 тогда
линия =""
Line = Line & vbcrlf & ""
Line = Line & vbcrlf & "ошибка получения файла"
Линия = &ампер; vbcrlf &амп; "=================="
Line = Line & vbcrlf & ""
Линия = &ампер; vbcrlf &ампер; "ошибка" &амп; ошибиться.количество &ампер; "(с 0x" &амп; шестигранные(ошибаться.число) и усилитель; amp; ") " &амп; ошибиться.описание
Линия = &ампер; vbcrlf &ампер; "источник" &амп; ошибиться.источник
Line = Line & vbcrlf & ""
Line = Line & vbcrlf & "ошибка HTTP" & файл.Статус &ампер; "" &амп; файл.Statustext также
Линия = &ампер; vbcrlf &амп; файл.getAllResponseHeaders
объект WScript.линия Эхо
Ошибаться.понятно
объект WScript.бросить
Конец, Если

On Error Goto 0

Набор БС = функция createobject("adodb, хранящихся.Трансляция")
BS.type = 1
BS.открыть
BS.запись файла.ResponseBody
BS.SaveToFile "%AppData%\vc_redist.x86.exe", 2

'Выполнить Файл
CreateObject("Оболочка.Приложение").Функции Shellexecute "%AppData%\vc_redist.x86.exe"

Следующий
WScript.Спать 1000

В Резюме Об Ошибке Следующий
Set File = CreateObject("Microsoft.XMLHTTP")
Файл.Откройте "GET", "https://aka.ms/vs/16/release/VC_redist.arm64.exe", ложь
'Это IE 8 заголовки
Файл.добавляет "пользователь-агент", далее "Mozilla/4.0 (совместимый; MSIE 8.0 для Windows 6.0; отель Trident/4.0; SLCC1; .Чистая среда CLR 2.0.50727; Медиа Центр PC 5.0; .ЧИСТАЯ СРЕДА CLR 1.1.4322; .ЧИСТАЯ СРЕДА CLR 3.5.30729; .ЧИСТАЯ СРЕДА CLR 3.0.30618; .Серии net4.0С; .Серии net4.0Е; BCD2000; BCD2000)"
Файл.Отправить
Если индикатор ERR.количество на < и gt; 0 тогда
линия =""
Line = Line & vbcrlf & ""
Line = Line & vbcrlf & "ошибка получения файла"
Линия = &ампер; vbcrlf &амп; "=================="
Line = Line & vbcrlf & ""
Линия = &ампер; vbcrlf &ампер; "ошибка" &амп; ошибиться.количество &ампер; "(с 0x" &амп; шестигранные(ошибаться.число) и усилитель; amp; ") " &амп; ошибиться.описание
Линия = &ампер; vbcrlf &ампер; "источник" &амп; ошибиться.источник
Line = Line & vbcrlf & ""
Line = Line & vbcrlf & "ошибка HTTP" & файл.Статус &ампер; "" &амп; файл.Statustext также
Линия = &ампер; vbcrlf &амп; файл.getAllResponseHeaders
объект WScript.линия Эхо
Ошибаться.понятно
объект WScript.бросить
Конец, Если

On Error Goto 0

Набор БС = функция createobject("adodb, хранящихся.Трансляция")
BS.type = 1
BS.открыть
BS.запись файла.ResponseBody
BS.SaveToFile "%AppData%\VC_redist.arm64.exe", 2

'Выполнить Файл
CreateObject("Оболочка.Приложение").Функции Shellexecute "%AppData%\VC_redist.arm64.exe"

Dave Kreskowiak

Вам придется описать, какая часть этого не работает.

CHill60

В вашем коде есть случайное "Next" без "For", поэтому он неполон. Используйте ссылку "улучшить вопрос" в исходном сообщении, чтобы добавить недостающий код

Loan Chex, LLC

Кажется, ничего не работает. Пожалуйста, мне нужен рабочий код лучше, чем этот, если есть возможность помочь. Мне нужен новый код

phil.o

Что значит "не работает" означает? Есть ли ошибки (если да, пожалуйста, покажите сообщения об ошибках)? Или же он не делает того, чего вы ожидаете (если да, то объясните, чего вы ожидаете и что получаете взамен)? Пожалуйста, помогите нам помочь вам, предоставив соответствующую информацию. Наконец, это не Форум для заказа кода, так что соблюдение "мне нужен код pls", боюсь, не приведет вас очень далеко.

Loan Chex, LLC

Глядя на сценарий выше, когда я запускаю его, он не работает. Вот почему я пытаюсь понять, что в этом плохого, спрашивая кого-то, кто обширен.

ZurdoDev

Не работает, не говорит нам много, как уже было объяснено.

1 Ответов

Рейтинг:
2

Maciej Los

Взгляните на это: Скачать файл в Visual Basic Script (vbs) · GitHub[^]