Вопрос:
Я пытаюсь автоматизировать VBScript с помощью планировщика задач Windows. Однако я пытался использовать cscript.exe + «C:…script.vbs», но он не запускался. Я также попытался напрямую запустить ту же команду в CMD (cscript.exe «C:…script.vbs»), и она сработала.
В чем может быть проблема?
EDIT:
Я просто попытался переключить параметр на «Run only when user is logged on» с «Run whether user is logged on or not», и он сработал. Мне интересно, есть ли способ сделать запланированную работу моей задачи, даже когда пользователь вышел из системы.
Лучший ответ:
После нескольких часов исследований появился блог Блейка Моррисона (из Microsoft); он упомянул, что
Если вы запускаете .vbs/.ps1 script, попробуйте запустить его из .cmd/.bat script
см. Справка! Моя запланированная задача не запускается…
Этот блог также объясняет множество правил/советов при использовании планировщика заданий.
Итак, создайте файл .cmd/.bat, который вызывает ваш VBScript. Например: cscript.exe YourScript.vbs будет в вашем .cmd/.bat script.
Ответ №1
Напишите командный файл следующим образом:
echo «Started!» > c:foldergoesherelog.txt cscript.exe «C:…script.vbs» > c:foldergoesherelog.txt echo «Stopped!» > c:foldergoesherelog.txt
Затем планируйте командный файл вместо vbs. Это позволит вам увидеть, что происходит, что мешает ему работать. Любая ошибка, которую вы видели в консоли (CMD), будет выводиться в этот файл журнала между “Started!” и “Остановились!”
Ответ №2
Что за хлопот? Я не использую .cmd/.bat и script работает! (Windows7 здесь)
Мой VBS script (как запланированная задача) хорошо работает в любом сценарии этих 4:
- c script и параметр “Запускать только при входе пользователя”
- c script и параметр “Запустить, вошел ли пользователь в систему или нет”
- w script и параметр “Запустить только при входе пользователя”
- w script и параметр “Запустить, вошел ли пользователь в систему или нет”
Только в первом сценарии я сталкиваюсь с черным командным окном, мигающим на моем экране.
Настройки действий:
или
My script, который просто создает файл:
Set objFSO = CreateObject(«Scripting.FileSystemObject») filename = «C:Temp» & Hour(Time) & Minute(Time) & Second(Time) Set objFile = objFSO.CreateTextFile(filename) Ответ №3
Файл .vbs запускается невидимо, что является следствием запуска его с параметром “logged on or not”.
Вам не разрешат вмешиваться в использование пользователя с помощью компьютера, что означает, что вы сможете помочь себе, но не другим.
Прочтите следующий текст в меню справки планировщика заданий:
Контекст безопасности задачи
Вы можете указать, что задача должна выполняться, даже если учетная запись, под которой планируется запуск задачи, не регистрируется при запуске задачи.
Для этого выберите радиокнопку с надписью “Запустить”, вошел ли пользователь в систему или нет.
Если этот переключатель выбран, задачи не будут выполняться в интерактивном режиме.
Чтобы выполнить задачу в интерактивном режиме, выберите “Выполнить”, только когда пользователь зарегистрирован на радиокнопке.
Ответ №4
Не раз сталкивались с тем, что VBScript, работающий по плановой задаче, работал отлично в течение нескольких месяцев и лет, но внезапно больше не работал, несмотря на то, что ничего не изменилось. Попробовали реагировать на эту задачу, используя все рецепты, приведенные здесь и в других местах, но без успеха. Мое обходное решение заключалось в создании запланированной задачи new со всеми настройками, скопированными из исходного.
Ответ №5
Грег ответил на это https://superuser.com/a/816073
В основном вам нужно создать 2 папки:
Вы должны создать папку (или две на 64-битных окнах):
(32 бита, всегда) C:WindowsSystem32configsystemprofileDesktop
(64 бит) C:WindowsSysWOW64configsystemprofileDesktop
Исправил проблему для меня (и я мог указать на файл .vbs, а не bat).