
У нас есть сервер 2008 R2 с запланированной задачей, которая запускает файл .bat, который выполняет вызов приложения Java. Задача запускается нормально, но прекращает выполнение чего-либо после создания файла журнала. Вот подробности того, как это настроено:
Он работает на уровне учетной записи пользователя, созданной специально для этой задачи, и у которой есть разрешения, настроенные для входа в систему в качестве пакетного задания.
Пакетный файл может выполнить два шага (второй из них зависает):
cd E:\CLIENT_DB\WS_Client\bin\
java -Xms256m -Xmx512m -XX:MaxPermSize=512m -cp ..;..\*;..\certs;..\config;..\client;..\client\*;..\lib\*;..\lib\axis2\* WsClientStarter update > E:\CLIENT_DB\Logs\WSCLIENT_LOG_%DATE:~4,2%-%DATE:~7,2%-%DATE:~10,4%.txt
- Первое действие клиента Java — использовать утилиту log4j для создания логгера с клиентским классом в качестве аргумента. Похоже, это удается, поскольку мы получаем пустой файл журнала с именем, указанным в пакетном вызове выше. Вот конкретная команда:
private static final Logger logger = Logger.getLogger(WsClientRunner.class);
- Затем клиент запускает основную функцию и считывает аргумент «обновление», чтобы определить режим выполнения, а затем продолжает работу в соответствии с программой.
Вот мой вопрос:Существуют ли какие-либо политики безопасности или другие процессы, которые могут помешать этому при запуске в качестве пакетного задания, а не при запуске пользователем (например, двойным щелчком по пакетному файлу)?
Поскольку Java-клиент, судя по всему, работает нормально, когда запущен сам по себе (включая запись результатов в файл журнала), мы не думаем, что проблема обязательно связана с Java-клиентом, но если у вас нет ответов, я спрошу у ребят из StackOverflow.
решение1
Проверьте, выбраны ли в поле «Настроить» операционные системы Windows 7 и Windows Server 2008 R2.
Кроме того, вам необходимо ввести «Запустить в папке» на вкладке «Действие» в свойствах задачи, хотя это необязательно.
Может быть, это поможет. Мне это помогло с похожей проблемой.
решение2
У нас тоже была эта проблема. Оказалось, что учетные данные, указанные для запланированной задачи, отличались от тех, которые использовались для ручного запуска скрипта. Другие статьи, которые я нашел, также указывали на проблему с разрешениями.
Когда идентификатору, используемому для запуска задачи, были предоставлены права локального администратора, запланированное задание сработало. Затем мы протестировали размещение профиля в более низких локальных группах безопасности, пока не нашли тот, у которого был наименьший доступ, но который все еще позволял скрипту успешно завершиться.