Запланированная задача Windows 7 запускается, но ничего не ДЕЛАЕТ

У меня есть файл vbscript, который должен работать под 32-битной версией на 64-битной машине с Windows 7, чтобы он мог подключаться к 32-битной базе данных Access. Из окна запуска я могу ввести:

C:\Windows\SysWow64\WSCRIPT.EXE P:\Applicants\Applicants.wsf

и он отлично работает. Когда я пытаюсь запустить это как запланированное задание, оно выполняется менее чем за секунду (это не должно быть так быстро) и утверждает, что завершилось успешно. Это «действие», под которым я сейчас его выполняю:

Start a Program
C:\Windows\SysWow64\WSCRIPT.EXE
Arguments: //Nologo //B P:\Applicants\Applicants.wsf >> P:\Applicants\logfile.txt

Я также пробовал запускать его под CScript вместо WScript, и результат был точно таким же.

До того, как я добавил «// Nologo // B» (совет, который я нашел здесь), он запускался и никогда не останавливался.

Необязательное поле «Начать с» пусто. Если я вообще ввожу в него какое-либо значение (пробовал P: \ Applicants), задача не запускается с «Значение ошибки: 2147942667.» Никакие решения, предлагаемые поиском по этому коду ошибки, не помогли, поэтому я оставляю это поле пустым.

Файл журнала даже не создается, и никакая работа, выполняемая скриптом, не выполняется.

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

Предложения? Без файла журнала я даже не знаю, с чего начать устранение этой проблемы.

РЕДАКТИРОВАТЬ: Новая информация: если я настрою его запускать, только когда я вошел в систему, он будет работать нормально. Он не работает, только если он настроен на запуск, даже если пользователь вышел из системы, даже если я вхожу в систему, когда он запускается.

РЕДАКТИРОВАТЬ 2: Контекст безопасности «запускать, даже если пользователь вышел из системы» гласит, что "" ... выберите переключатель с надписью "Выполнить" независимо от того, вошел ли пользователь в систему или нет. Если этот переключатель установлен, задачи не будут выполняться в интерактивном режиме. Чтобы задача выполнялась в интерактивном режиме, выберите переключатель «Запускать, только когда пользователь вошел в систему».

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


person Anonymous Man    schedule 17.04.2013    source источник
comment
Я вас так много ... Я боролся с TS около месяца, пытаясь запустить мой дурацкий Vbscript и меняя параметр на Запускать только тогда, когда пользователь вошел в систему, заставил его запустить за меня! Спасибо!!!   -  person Prophesix    schedule 11.01.2016


Ответы (2)


Понятно! Проблема заключалась в том, что я ссылался на подключенный диск с помощью P: \ как в вызове «действия», так и в самом скрипте. Когда я заменил все вызовы диска P на полный сетевой путь \ server \ share, все работает нормально. Конечно, подключенные диски недоступны, если я не вошел в систему, это имеет смысл: p

person Anonymous Man    schedule 18.04.2013

У вас есть два варианта.

1. Создайте командный файл с командой для запуска, затем запланируйте запуск командного файла вместо файла VBScript.

2. Запустите файл сценария напрямую, вместо использования WScript или CScript.

Источники: http://social.technet.microsoft.com/Forums/en-US/windowsserver2008r2general/thread/464a3bb3-3bcd-47a0-ab03-f0b8910f2ed1/

person kirbyfan64sos    schedule 17.04.2013
comment
вариант 1 стоит попробовать. Я не могу использовать вариант 2, потому что он запустит его в 64-битной версии по умолчанию и не будет подключаться к 32-битной базе данных Access. Выше также добавлена ​​некоторая новая информация. - person Anonymous Man; 18.04.2013
comment
@AnonymousMan: Расскажи мне, как дела. Также прочтите ссылку, которую я предоставил. Что касается 32/64 бит, ох уж больно 64-битной Windows! - person kirbyfan64sos; 18.04.2013
comment
Результат запуска его из командного файла такой же. Он будет запускаться только в том случае, если выбрано «Запускать, только если пользователь вошел в систему». Мне нужно, чтобы он работал, когда я выхожу из системы, но в крайнем случае я могу остаться в системе и заблокироваться, если это считается «авторизованным». - person Anonymous Man; 18.04.2013
comment
@AnonymousMan: Лучше всего заблокировать учетную запись, как вы сказали. Я предполагаю, что VBScript полагается на вещи, которые выполняются только тогда, когда пользователь вошел в систему. Извините! - person kirbyfan64sos; 18.04.2013
comment
Понятно! Проблема заключалась в том, что я ссылался на подключенный диск с помощью P: \ как в вызове «действия», так и в самом скрипте. Когда я заменил все вызовы на диск P на полный сетевой путь \\ server \ share, все работает нормально. Конечно, подключенные диски недоступны, если я не вошел в систему, это имеет смысл: p - person Anonymous Man; 18.04.2013
comment
@AnonymousMan: Если вы хотите, чтобы ваша учетная запись не оставалась в системе, создайте другую учетную запись только с правом доступа к этому диску и вместо этого оставьте ее в системе. Удачи! - person kirbyfan64sos; 18.04.2013