Task Scheduler - не запускаются пакетные файлы
Добрый день.
При миграции на Windows 2008 столкнулись с проблемой выполнения пакетных файлов (cmd,bat) из Task Scheduler'а Windows 2008. Последовательность действий: Способ 1: 1. Логинимся пользователем от которого будет запускаться скрипт 2. Создаем задание, выставляем триггер запуска каждый час 3. Добавляем Action (Start a program) в виде: Program/script - "c:\windows\system32\cmd.exe" Additional parameters - /C c:\scripts\upload.cmd4. Запускаем задание, каталог (куда должен быть сохранены данные из таблицы пуст), визуально задание переходит в состояние Running, тут же делаем обновление окна, задание уже в состоянии Ready Скрипт такого содержания: Код:
@echo off 3. Добавляем Action (Start a program) в виде: Program/script - "C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\bcp.exe" Additional parameters - RETAIL.dbo.SERVICE_INQUIRY_VIEW_prepared out c:\scripts\output\servicelists.csv -fc:\scripts\bcp.fmt -Saxsql1 -T4. Запускаем задание, каталог (куда должен быть сохранены данные из таблицы пуст), визуально задание переходит в состояние Running, тут же делаем обновление окна, задание уже в состоянии Ready Способ 3: 1. Логинимся пользователем от которого будет запускаться скрипт 2. Запускаем cmd.exe 3. Набираем "c:\scripts\upload.cmd 4. все отрабатывает нормально, файлы создаются там где надо, и отправляются согласно инструкциям в скрипте. Окружение: Пользователь не администратор, на уровне политики безопасности разрешен logon as batch job, является владельцем каталога куда должны записываться данные. Кратковременное наделение его правами администратора ситуацию не изменило - cmd и bat скрипты не запускаются. Журнал событий по данному заданию благостен - "Task Completed successfully ..." А вот теперь самое интересное - если запускать к примеру "C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\isql.exe" (оптимизация баз и т.п.) то все нормально отрабатывает под этим же пользователем в автоматическом режиме по расписанию. Из скрипта (по тому же расписанию) - ни в какую. И еще - на старом сервере (Windows 2003 R2) все эти скрипты работают как надо. Для очистки совести, поставили свежий 2003 R2 - работают. Вторая неделя гугления пока ничего не дала, точнее в паре форумов вопрос по невыполняющиеся скрипты задавался, но ответом вопрошающе не получили. Заранее спасибо. |
Ну как вариант могу предложить следующее:
1. Проверить NTFS права на cmd.exe 2. Создать простейший bat файл, который будет просто слать сообщение или писать чего нибудь в текстовик. Запустить. Если обрабатывает корректно, значит проблема именно в bat файле. Проверьте права доступа на папки, в которые пишет bat файл. Проверьте права доступа на ftp. |
1. Проверили в первую очередь, права есть.
2. Делали, не работает. Права на каталог есть, более того - пользователь запускающий скрипт является владельцем каталога. До ftp процесс явно не доходит. Вообще, есть определенное сомнение, что Task Scheduler передает строку параметров командному процессору. Сегодня буду звонить в ТП Microsoft, послушаем, что они скажут... |
frozer, Подскажи, пожалуйста, как же все таки решилась проблема. Пол дня мучаюсь. Ерунда какая-то. Ничего не выходит. :(((
|
chervonec,
Я думаю что решилось все таки добавлением прав на cmd.exe именно пользователю. Об этом говорил Derlium, а если не поможет то filemo и regmon вам в помощь, хотя вроде бы regmon заменена програмой procmon из набора sysinternals. |
Лучше поздно, чем никогда.
Столкнулся с такой же проблемой: не запускаются batch files from Task Scheduler 2008 R2. Решение нашел здесь: http://www.vistaheads.com/forums/mic...-bat-file.html Все дело в волшебных кавычках. Применительно к первому посту из этой ветки, решение должно быть таким: Program/script - "c:\windows\system32\cmd.exe" - в кавычках. Additional parameters - "/C c:\scripts\upload.cmd" - в кавычках. Start in - c:\scripts\ - БЕЗ кавычек. Мне эти кавычки помогли. |
Мне помогло вот это:
In the Task Scheduler for this task, do you have the "Run with highest privileges" option enabled in the General Tab? просто установил эту галочку. А cmd.exe вообще не указывал, сразу выбрал путь к скрипту, безо всяких кавычек и не указывал ни дополнительных параметров, ни окружения, в котором нужно запускать скрипт. |
Цитата:
1. это упрощает компроментацию системы (батник можно подменить) 2. в случае ошибки отладка почти невозможна (когда дофига привелегий ошибку можно выловить только через filemon) Нужно запускать задания ТОЛЬКО под записями не имеющими полномочий. В данном случае нужно проверить права запустить из под пользователя в интерактивном режиме (желательно записать что происходит с помощью Filemon) по результатам принимать решения |
дабы не создавать тему с одинаковым названием:
имеется сервер 2008 R2 sp1 в домене. появилась проблема: не запускаются батники по шидулеру, причем ни по расписанию, ни принудительно. Интересно, что имеются старые задачи, которые преспокойно запускаются. Отдельно батник отрабатывает. Что предпринимал для решения: 1. пробовал подставлять простые програмки для запуска: блокнот и простой скрипт типа "copy D:\путь\test.bat D:\". Блокнот запускается; меняю в этой же задаче блокнот на батник - хрен. 2. запускал скрипт от дефолтного доменного админа с наивысшими привелегиями (хотя казалось бы куда выше) 3. Проверял доступ по путям и параметр "логиниться в качестве батника" 4. пробовал экспортировать старую работающюю задачу и импортировать с изменением имени задачи и целевого батника 5. и это пробовал: Program/script - "c:\windows\system32\cmd.exe" - в кавычках. Additional parameters - "/C c:\scripts\upload.cmd" - в кавычках. Start in - c:\scripts\ - БЕЗ кавычек. уже не знаю что думать... |
Сутки гугления и проблема в том, что нада батник в Program files поместить. В назначеном задании разрешается "выполнение программ" только в этой дериктории. Ох вы не представляете как бошка уже с этим батником опухла.
|
Время: 04:02. |
Время: 04:02.
© OSzone.net 2001-