2015-08-04 8 views
0

У меня проблема на сервере Windows 2008 R2.Запланированная задача выполняется, но запускает пакет только после незначительных изменений.

Я назначил задачу, которая выполняется ежедневно в фиксированное время с использованием учетной записи домена, запускает файл .bat, который вызывает исполняемый файл, передающий некоторые параметры.

Он работал месяцами, но без каких-либо видимых причин он переставал работать: история задач показывает, что задача фактически начинается, она не сообщает об ошибках, но исполняемый файл ничего не делает.

Я заметил, что:

  • Если я зарегистрирован на удаленном рабочем столе во время выполнения задачи работает.

  • Если я сделаю незначительную модификацию задачи (измените время начала на 1 секунду) и сохраните ее, тогда задача возобновит нормальное поведение, даже если я не зарегистрирован.

  • Другие аналогичные задачи на одном сервере, работающие на одной учетной записи, работают правильно.

  • Это второй раз, когда на том же сервере запланированная задача дает эту проблему.

Похоже, что что-то в задаче повреждено и принудительное сохранение восстанавливает нормальную работу.

Я уже проверил:

  • задание выполняется правильно, если запущена вручную;
  • Разрешения на .bat и exe - полный контроль над учетной записью задачи;
  • Пароль для учетной записи не изменился;
  • Поле «Начало» - это путь .bat;
  • Приведенные приводы не связаны;
  • Задача выполняется с учетной записью домена, которая также является администратором машины, она имеет самые высокие привилегии и, конечно же, независимо от того, зарегистрирован ли пользователь или нет.

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

У вас есть какие-либо советы по обнаружению и предотвращению этой проблемы?

+1

Я бы попытался 1. воссоздать задачу 2. очистка планировщика задач [кэш реестра] (https://social.technet.microsoft.com/Forums/office/en-US/d24a6af9-4c42-4507-9562 -fdf466c9d707/task-scheduler-corrupt-tasks? forum = itprovistadesktopui) на всякий случай. – wOxxOm

+0

Возможно, что одновременно запускаются две задачи, которые пытаются получить доступ к одному файлу. Задача немного быстрее при доступе к файлу, так как другая выигрывает в этом случае гонку за получением эксклюзивного доступа для чтения/записи в файле. – Mofi

ответ

0

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

Из любопытства, когда это происходит, задание показывает, что оно установлено при программном программировании?

Dim rootFolder As TaskScheduler.ITaskFolder 
Dim task As TaskScheduler.IRegisteredTask 

' Create the TaskService object. 
Set service = CreateObject("Schedule.Service") 
service.Connect strHostname, strUsername, strDomain, strPassword 

' Get the task folder that contains the tasks. 
Set rootFolder = service.GetFolder("\") 
Set task = rootFolder.GetTask(strNameOfTask) 
WScript.Echo task.Name & " (Enabled: " & task.Enabled & ") Last Run: " & task.LastRunTime 

Кроме того, когда вы смотрите на C: \ Windows \ System32 \ Tasks, является файл XML для выполнения этой задачи еще в силе?

Не зная точно, какая часть процесса сломалась, трудно сказать, где искать решение.

Смежные вопросы