it-swarm.com.ru

Планировщик заданий Windows Запустите VBScript

Я пытаюсь автоматизировать VBScript с помощью планировщика заданий Windows. Тем не менее, я попытался использовать cscript.exe + "C:\...\script.vbs", но он не запустился. Я также пытался напрямую запустить ту же команду в CMD (cscript.exe "C:\...\script.vbs"), и это сработало.

В чем может быть проблема?

Правка :

Я просто попытался изменить настройку "Run only when user is logged on" с "Run whether user is logged on or not", и это сработало. Мне интересно, есть ли способ сделать мою задачу запланированной, даже когда пользователь вышел из системы.

5
lovechillcool

После нескольких часов исследований появился один из блогов Блейка Моррисона (из Microsoft); упоминалось, что 

Если вы запускаете скрипт .vbs/.ps1, попробуйте запустить его из скрипта .cmd/.bat

см Помощь! Моя запланированная задача не запускается…

Этот блог также объясняет множество правил/советов при использовании планировщика заданий.

Поэтому, пожалуйста, создайте файл .cmd/.bat, который вызывает ваш VBScript. Например: cscript.exe YourScript.vbs будет в вашем скрипте .cmd/.bat.

3
lovechillcool

Напишите командный файл так:

echo "Started!" > c:\foldergoeshere\log.txt
cscript.exe "C:\...\script.vbs" > c:\foldergoeshere\log.txt
echo "Stopped!" > c:\foldergoeshere\log.txt

Затем запланируйте пакетный файл вместо VBS. Это позволит вам увидеть, что происходит, что мешает ему работать. Любая ошибка, которую вы видели бы выполняющейся в консоли (CMD), вместо этого будет выводиться в этот файл журнала между «Started!» и "Остановился!"

3
Jen R

Грег ответил на это https://superuser.com/a/816073

В основном вам нужно создать 2 папки:

Вы должны создать папку (или две на 64-битных окнах):

(32 бита, всегда) C:\Windows\System32\config\systemprofile\Desktop

(64 бит) C:\Windows\SysWOW64\config\systemprofile\Desktop

Исправил проблему для меня (и я мог указать на файл .vbs, а не bat).

1
Curtis

В чем суета? Я не использую .cmd/.bat и скрипт работает! (Windows7 здесь)
Мой сценарий VBS (как запланированная задача) хорошо работает при любом сценарии из следующих 4:

  1. c script и опция «Запускать только когда пользователь вошел в систему»
  2. c script и опция «Запускать, вошел ли пользователь в систему или нет»
  3. w script и опция «Запускать только когда пользователь вошел в систему»
  4. w script и опция «Запускать, вошел ли пользователь в систему или нет»

Только в первом сценарии я сталкиваюсь с черным командным окном на моем экране.

Настройки действий:

cscript
или же
wscript

Мой скрипт, который просто создает файл:

Set objFSO = CreateObject("Scripting.FileSystemObject")
filename = "C:\Temp\" & Hour(Time) & Minute(Time) & Second(Time)
Set objFile = objFSO.CreateTextFile(filename)
1
ZygD

Файл .vbs работает невидимо, что является следствием запуска его с опцией «залогинен или нет».

Вам не разрешат вмешиваться в работу пользователя с помощью компьютера , что означает, что вы сможете помочь себе, но не другим.

Пожалуйста, прочитайте следующий текст из меню справки планировщика задач:

Контекст безопасности задачи

Вы можете указать, что задача должна запускаться, даже если учетная запись, под которой запланировано выполнение задачи, не вошла в систему при ее запуске. 

Для этого установите переключатель «Выполнить» независимо от того, вошел пользователь в систему или нет. 

Если выбран этот переключатель, задачи не будут выполняться в интерактивном режиме. 

Чтобы задача выполнялась в интерактивном режиме, выберите «Выполнять только, когда пользователь вошел в систему». 

1
Trigger

Я не раз сталкивался с тем, что VBScript, работающий как запланированная задача, работал отлично в течение многих месяцев и лет, но внезапно больше не работал, несмотря на то, что ничего не изменилось. Попытка ответить на задачу, используя все рецепты, приведенные здесь и в других местах, но безуспешно. Мой обходной путь состоял в том, чтобы создать новое запланированное задание со всеми настройками, скопированными из исходного.

0
Markus