Windows 7 запланированное задание возвращает 0x2

28825
demmith

У меня есть идентичные запланированные задачи, работающие в Windows XP Pro и Windows 7. XP Pro работает нормально, Windows 7 всегда возвращает 0x2 (что означает: «Система не может найти указанный файл»; однако выполнение из командной строки нет проблем) в столбце «Результат последнего запуска» пользовательского интерфейса планировщика заданий.

Запланированное задание выполняет файл .bat ежедневно. Файл .bat содержит вызов для выполнения сценария Perl. Как я уже говорил в предыдущем абзаце, он работает под XP без каких-либо проблем, но под Windows 7 - без кубиков.

Задача в Windows 7 настроена на «запуск независимо от того, вошел пользователь в систему или нет». В данном случае это я, я единственный пользователь системы. Также установлено «Запускать с наивысшими привилегиями». И это не скрыто. Файл .bat прекрасно работает из командной строки - он вызывает скрипт Perl, как и ожидалось, и скрипт Perl делает свое дело.

Я искал повсюду в поисках подходящего ответа на этот вопрос. Пока ничего не нашел. Что, черт возьми, происходит с этой запланированной задачей Win7? Я готов вырвать мои волосы.

6
Ваш сценарий имеет доступ к чему-либо по сети, например, к общим папкам, или он работает полностью локально? Chris W. Rea 13 лет назад 0
Вы предназначались для файла с абсолютным именем? Пример: C: \ Storage \ batchfile.bat Doltknuckle 13 лет назад 2
Правильно ли вы установили рабочий / текущий каталог? Когда вы говорите, что он работает из командной строки, из какого каталога вы запускаете его? Это работает из любого каталога? Synetech 13 лет назад 1

5 ответов на вопрос

6
KERR

I had this issue as well. 0x2 from task scheduler seemed to say it couldn't find the batch file. This was false - I added some pipe arrows (>>) to output my batch file to a logfile, then ran the scheduled task.

Despite getting a 0x2 in Task Scheduler, I found the batch file had actually run, but had encountered an error (which showed up in the logfile).

Another thing to try is running the task as SYSTEM or NETWORK SERVICE instead.

2
Chris

У меня была такая же проблема, и я решил ее. На вкладке «Действия» в разделе «Программа / сценарий» просто введите имя своего пакетного файла. В разделе «Начать с (необязательно):» укажите путь к файлу без кавычек и без косой черты.

Пример ниже для запуска файла test.bat из тестовой папки в корне C:

Программа / скрипт: test.bat

Пуск в (необязательно): C: \ Test

Это решило мою проблему. David 10 лет назад 0
1
Jeff Lehman

Я пытался синхронизировать пару папок с SyncToy 2.1 на двух рабочих станциях с Windows 7 SP1. Сначала я просто просмотрел файл и добавил аргументы для задачи. Он вернул код 0x2. Microsoft TechNet рекомендует использовать поле «Начать с», чтобы убедиться, что имя файла разрешено в правильное местоположение. Я скопировал путь к каталогу SyncToy без кавычек или косой черты в поле «Начать с», сохранил его и запустил задачу. Результатом стал успех, код 0x0!

1
Levi

In my case I was using a mapped drive as a destination, but the drive wasn't mapped in the context of the script (user logged off), so I had to map the drive inside the script before I could use that mapping.

Example:

@echo off net use Z: \\server\share /u:domain\username *password* robocopy c:\folder Z:\backup /o /p /t /i /o /n /s 
Этот ответ определил проблему для меня, но лучшее решение (по крайней мере, в моем случае) - использовать UNC-пути вместо сопоставления сетевого диска. Son of a Beach 6 лет назад 1
0
Son of a Beach

Подобно @Levi, я использовал подключенный сетевой диск. Однако в моем случае более простым решением было изменить его, используя UNC-пути. Например, вместо использования этого аргумента:

"W:\blah\script.py" 

Я сейчас использую этот аргумент:

"\\file-server-02\path\blah\script.py"