Sotus
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Несколькими постами раньше обещался написать о том, как удалось решить проблему запуска VBS-скрипта для перезагрузки маршрутизатора (или модема) с помощью Telnet и заставить всё это работать из планировщика USD. Напомню, что сам по себе VBS-скрипт прекрасно запускался и отрабатывал перезагрузку, а вот из планировщика USDownloader запускаться отказывался (только через ВАТ-файл, но и в этом случае Windows_Script_Host (WSH) выдавал ошибку, т.к. ни в какую не хотел запускать Telnet.exe). Решение оказалось неожиданно простым. Подумал, что раз уж VBS-скрипт не хочет запускаться из USDownloader, то уж ЕХЕ то захочет Ввёл в поисковике "VBS to EXE" и открыл первую попавшуюся ссылку с фриварной программкой (Vbs To Exe 2.0.1.0). В составе архива имеется портабельный вариант программы (Vbs_To_Exe_(x64).exe), не требующий инсталляции, - его и запустил. Дальше просто: - указал путь к скрипту; - разрядность архитектуры (х64); - нажал "Компилировать". В результате из скрипта скомпилировался ЕХЕ-файл, который я НАПРЯМУЮ ПРОПИСАЛ в планировщике USDownloader-а. И, о чудо, - всё заработало! Ещё у меня была мысль, что ошибки WSH при выполнении, возможно, как-то связаны с разрядностью операционки (у меня х64). Поэтому решил попробовать скомпилировать с опцией "32-разряда", - не заработал даже простой запуск получившегося ЕХЕ-файла по дабл-клику мышкой (правда никаких сообщений об ошибках не выдаёт, - судя по всему скрипт просто не запускается). Видимо это предположение оказалось верным. Теперь обнаружил ограничения и недостатки самого скрипта: - когда включается скринсэвер, - скрипт не срабатывает; - когда скрипт отрабатывает, то переключение в этот момент в другое приложение нарушает работу скрипта и данные продолжают вводиться уже в это приложение, т.е. в итоге скрипт не срабатывает. Как я понимаю, это связано с тем, что скрипт выполняет функцию отсылки команд в виде клавиатурных последовательностей и в первом случае не отрабатывает, т.к. включается скринсэвер, а во втором - вводит данные в другое приложение. Может быть, кто-нибудь из знающих людей подскажет другой способ как это реализовать в скрипте? | Всего записей: 203 | Зарегистр. 26-12-2014 | Отправлено: 01:15 02-03-2015 | Исправлено: Sotus, 01:22 02-03-2015 |
|