Есть ли проблемы с запуском запланированных задач в Windows 2003, когда у задачи есть графический интерфейс? У меня есть тот, который отлично работал в Windows 2000, но не работает в Windows 2003.
Подробности:
У меня есть задание .bat, которое много лет выполнялось каждый час в течение дня на старом сервере Windows 2000. На прошлой неделе я наконец отключил этот сервер и переместил работу (и связанные с ней программы и файлы) на сервер Windows 2003.
Файл .bat сначала вызывает пару приложений строки cmd, но последний шаг - это приложение .NET на основе графического интерфейса пользователя (оно выполняет оптическое распознавание символов для файлов изображений, а затем закрывается).
С нового сервера, вошедшего в систему как владелец запланированного задания, я могу успешно запустить файл .bat из командной строки.
С нового сервера, снова вошедшего в систему как владелец запланированной задачи, я могу щелкнуть правой кнопкой мыши задачу в Планировщике и успешно запустить ее. Эта задача просто запускает тот же самый .bat-файл.
Если владелец запланированной задачи зарегистрирован на сервере 2003 и задача запускается с удаленного сервера (на котором пользователь запускал запланированные задачи и подключен к этому серверу), она также будет успешно выполнена.
Если владельцем запланированной задачи является не вошел в систему на этом сервере, то запланированная задача не выполняется на шаге, на котором запускается приложение с графическим интерфейсом. Мы не получаем сообщений об ошибках. Запуск ProcMon из другого сеанса / учетной записи пользователя, мониторинг этой учетной записи также ничего не показал.
На данный момент мой ужасный обходной путь - оставить владельца запланированной задачи авторизованным на консоли с заблокированным экраном. Конечно, это становится проблемой каждый раз, когда сервер перезагружается ...
Владелец запланированной задачи - это наша «учетная запись службы домена», которая работает со всеми другими задачами на всех других серверах. Это не заблокировано или что-то в этом роде.
Я даже попытался изменить планировщик задач, чтобы установить флажок «Разрешить службе взаимодействовать с рабочим столом», но это ничего не изменило. (Да, я перезапустил службу после изменения.)
Мысли?
Обновлено (19.01.2010)
Мне нужно немного уточнить: упомянутое мною .NET-приложение делает множество вещей, которые работают. Только когда дело доходит до того, что нужно открыть окно, приложение затем зависает. Мы можем видеть прогресс приложения по оставленным им записям в журнале, поэтому мы можем видеть, что оно работает нормально, причем последняя запись в журнале «собирается запустить OCR» ... и вот где она зависает.
У вас есть доступ к исходному коду программы для отладки? Похоже, что создание окон не удается, потому что для программы нет рабочего стола Windows, если владелец задачи не вошел в систему. Эта статья http://msdn.microsoft.com/en-us/library/ms687105%28VS.85%29.aspx описывает процесс создания оконной станции и рабочего стола.
Запускается ли установка задачи в определенном каталоге? Права доступа установлены правильно в тех каталогах, в которые он читает / записывает ..
Я предполагаю, что "Запуск от имени" в задаче настроен правильно (нужно проверить основы! :))
Вы проверили, что для учетной записи, для которой выполняется задача, предоставлено право «Входить в качестве пакетного задания» (Local Security Policy \ Local Policies \ User Rights Assignments \ Log on as a batch job)
Проблема здесь в том, что для вашей программы требуется графический интерфейс. У задач нет графического интерфейса Windows. Так что, если вы можете запустить программу без графического интерфейса, все будет в порядке.