Как успешно запустить командный файл в задании агента SQL?

Уважаемые пользователи Stackoverflow,

У меня есть SQL Agent Job, который генерирует конкретный отчет в PDF-файле, а затем копирует PDF в сетевой каталог, а затем удаляет файл PDF в исходном каталоге.

SQL Jobs состоит из двух шагов: 1. Создать отчет 2. Скопируйте отчет в сетевое местоположение.

Для шага 2 я сделал bat-файл, который обрабатывает копирование и удаление PDF-файла.

Файл bat-файла выглядит следующим образом:

set source_dir=C:\Reports\Energie\Uur
set dest_dir=\\KWS2-WEB-SERVER\Share\Reports\Uur

C:\Windows\System32\Robocopy.exe %source_dir% %dest_dir% /MOV /Z

However, when I run my the Job, it hangs on the second step. The status just stays on "Executing".

Это строка, которую я указал на шаге (местоположение исполняемого файла bat):

cmd.exe /c "C:\Reports\rapport_uur_copy.bat"

Мои настройки работы следующие:

Шаг 1

Тип: Операционная система (CmdExec) Успех: перейдите к следующему шагу

On Failure: выход из отказа отчета о работе

Шаг 2

Тип: Операционная система (CmdExec)

Успех: прекратите успешную работу

On Failure: выход из отказа отчета о работе

Некоторые факты:

  • У меня есть права на чтение/запись в сетевом каталоге
  • Я запускаю шаги как учетную запись администратора (зарегистрированный пользователь, по умолчанию)
  • Шаг 1 успешно
  • Я запускаю Windows Server 2008 R2 Standard
  • У меня есть SQL Server 2008 R2
  • Когда я запускаю скрипт из cmd вручную, он работает (под учетной записью администратора).

Заранее спасибо!

1
nl ja de
и что происходит, когда вы запускаете командный файл напрямую? это подсказывает вам? Вам нужно выработать правильный переключатель, чтобы остановить его. Другая причина, из-за которой не работает SQL-агент, заключается в том, что учетная запись, с которой она выполняется, отличается от вашей учетной записи. Например, по умолчанию учетная запись SQL Agent не может получить доступ к сетевым дискам, даже если вы можете.
добавлено автор Nick.McDermaid, источник
Извините, я вижу, что вы уже пытались запустить его вручную. Когда работа зависает, вы можете открыть диспетчер задач и проверить, что ваш CMD-процесс находится под ожидаемыми учетными данными? Вы можете попробовать добавить параметр/Log: для работы в журнале (это в любом случае хорошая идея). Просто убедитесь, что вы входите в файл, к которому у вас обязательно будет доступ. Вы также можете использовать/v для подробного описания. Вы также можете использовать «C: \ Reports \ rapport_uur_copy.bat» >> C: \ Log.TXT , чтобы записать ваш пакетный файл в другой журнал.
добавлено автор Nick.McDermaid, источник
@ElectricLlama Когда я запускаю пакетный скрипт напрямую (т. Е. Дважды щелкаю по файлу), не появляется приглашение. Он просто бежит. Я запускаю сценарий как Администратор. Я создал прокси с именем «asAdminProxy», где определены учетные данные администратора.
добавлено автор Nazeem, источник

1 ответы

когда пакетный скрипт должен использовать диски не локальные, например, для общих нужд всегда нужны специальные права, значит вам нужно использовать учетную запись для запуска скрипта, который разрешен для входа в пакетную задачу в secpol - ( нажмите «Запустить тип secpol.msc» и запустите его. Выберите «Локальные политики» в MSC. Выберите «Назначение прав пользователя». Щелкните правой кнопкой мыши «Войти в качестве пакетного задания» и выберите «Свойства» - нажмите «Добавить пользователя или группу» и включить соответствующего пользователя.)

тоже в обычной партии невозможно использовать \\ drives , они должны отображаться как диски с символом, например. V: \ drive , и это сопоставление должно быть сделано самим пакетом с помощью учетной записи пользователя , используемой для запуска пакета , я испытал это в скрипте мой.

3
добавлено
@ Naz33m больше не интересуется?
добавлено автор peet, источник
SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)