почему задача планировщика задач Windows 7 не выполняется с ошибкой 2147942667

133

У меня странная проблема. Я запланировал задачу по запуску командного файла. Когда я запускаю задачу с опцией, Run only when user is logged onвсе работает нормально. но я хочу запустить эту задачу в фоновом режиме и, следовательно, запускаю ее с помощью этой опции Run whether user is logged on or not. Теперь, когда я запускаю задачу, она не работает. Я получаю следующие 2 ошибки. Я не понимаю эту ошибку. Пожалуйста, помогите мне решить эту проблему.

 Task Scheduler failed to launch action "C:\Windows\SYSTEM32\cmd.exe" in instance "{2a7cc950-fad9-4633-9701-af75a0fd220d}" of task "\stmm\Daemon". Additional Data: Error Value: 2147942667.
 Task Scheduler failed to start instance "{2a7cc950-fad9-4633-9701-af75a0fd220d}" of "\stmm\Daemon"  task for user "GBLADHEDANI\N011940" . Additional Data: Error Value: 2147942667.
Alok
источник
41
Преобразуйте код ошибки в шестнадцатеричный, чтобы получить 0x8007010B. 7 делает это ошибкой Windows. Это дает код ошибки 010B 267. «Имя каталога недействительно». Конечно, бывает.
Hans Passant
1
@HansPassant, это великолепно. Преобразуйте в шестнадцатеричный, используйте последние четыре байта для поиска кода ошибки. Надеюсь, я вспомню это!
Марк Берри
FWIW Я обнаружил, что в главном пользовательском интерфейсе планировщика задач была задача с «Результатом последнего запуска» или аналогичным столбцом, показывающим читаемое сообщение об ошибке «Имя каталога недействительно». Исправление в нашей ситуации было ответом от jp2code ниже об удалении кавычек из папки Start In, потому что я скопировал его из цитируемой команды для запуска.
Neek 03
1
@RJDunnill, спасибо, что отметили меня на этом. Очень полезно!
Марк Берри,

Ответы:

254

У меня была такая же проблема.

Решение для меня было найдено в статье 2452723 Microsoft KB:

Запланированные задачи Windows Vista и более поздние версии не запускаются, если путь в поле «Начать в (необязательно)» содержит кавычки.

По сути, отредактируйте запланированную задачу и уберите цитаты из поля Start In:

  1. Откройте свое запланированное задание
  2. Перейдите на вкладку «Действия»
  3. Откройте свое действие
  4. Удалите кавычки (") из поля" Начать через (необязательно) "
  5. Сохраните и закройте все открытые диалоги

Диалоговое окно "Изменить действие"

Чтобы получить соответствующее сообщение об ошибке:

1) Преобразование 2147942667 в шестнадцатеричное: 8007010B
2) Возьмите последние 4 цифры (010B) и преобразуйте в десятичное: 267
3) Выполните: net helpmsg 267
4) Результат: «Имя каталога недействительно».

Окно командной строки

jp2code
источник
5
проблема была связана с разрешением на использование. При Run whether user is logged on or notзапуске с использованием опции я использовал другого пользователя для запуска приложения. У этого нового пользователя не было соответствующих разрешений на чтение данных и, следовательно, на ошибку. Спасибо.
Alok
1
Для меня это тоже не было «разрешающим». Это была папка Start in . Если да "C:\Some Path\", то это неправильно, потому что в нем есть кавычки. Он должен сказать `C: \ Some Path` (без кавычек).
jp2code
16
Это решение. Удалите кавычки из текстового поля Начать в папке . Довольно эзотерическое решение. Потраченные впустую часы - хотелось бы, чтобы Microsoft упростила задачу с помощью полезных ошибок или исправила эту очевидную ошибку.
Джозеф
6
Как бы то ни было, я получаю эту ошибку, но в моем параметре «Начать в папке» нет кавычек, скорее, путь, на который была ссылка, не существует.
shufler
2
Я не использую кавычки, но проблема все равно возникает. @RayofCommand: нашли ли вы решение этой проблемы.
User1551892
9

Для меня это был «Start In» - я скопировал значения со старого сервера и обновил путь к новому местоположению .exe, но я забыл обновить местоположение «start in» - если он не существует, вы получить эту ошибку тоже

Цитата из комментария @ hans-passant сверху, потому что это полезно для отладки этой проблемы:

Преобразуйте код ошибки в шестнадцатеричный, чтобы получить 0x8007010B. 7 делает это ошибкой Windows. Это дает код ошибки 010B 267. «Имя каталога недействительно». Конечно, бывает.

user230910
источник
7

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

Cookalino
источник
3

У меня была такая же проблема на Windows7.

Я получал ошибку 2147942667 и сообщение о невозможности запустить c: \ windows \ system32 \ CMD.EXE. Я пробовал с двойными кавычками и без них в Script и Start-in, и это не имело никакого значения. Затем я попытался заменить все ссылки на пути на подключенные сетевые диски и на ссылки UNC (\ Server1 \ Sharexx \ my_scripts \ run_this.cmd), и это исправило это для меня. Патент

Пэт Фэхи
источник
Это, наконец, сделало это и для меня. Мне пришлось использовать «Net Use», чтобы получить имя сервера, а затем ping, чтобы получить имя домена. В конечном итоге это был \\ machine.domain.local \ app.exe. \\ Machine \ app.exe не работал
greg
Сделал это и для меня. Спасибо!
Jace
2

Чтобы получить более общий ответ, преобразуйте значение ошибки в шестнадцатеричное, затем найдите шестнадцатеричное значение в константах ошибок и успешности планировщика задач Windows.

flymike
источник
3
Привет Майк. Я использовал калькулятор для Windows в режиме программатора , чтобы преобразовать 2147942667в HEX: 0x8007010B. Это значение не отображается в предоставленной вами ссылке. Просто к вашему сведению, конечно.
jp2code
4
Я просто Googled его: 2147942667 in hex. Google теперь тоже калькулятор.
Baodad
0

Для меня это был «Start In» - я случайно оставил «.py» в конце названия моей программы. И я забыл заглавными буквами имя папки, в которой он был («Приложения»).

Реки Куомо
источник
0

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

rayzinnz
источник