Как удаленно запускать пакет DTSX из файла bat?

Я пытаюсь удаленно запускать пакет DTSX из файла bat с помощью этой команды:

DTEXEC /DTS "\File System\MY_PACKAGE_NAME" /SERVER MY_SERVER_NAME /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING V

Это работает нормально локально, но не удаляется удаленно (у меня есть права администратора на машине, на которую я указываю, и у меня также есть разрешения SQL). Я получаю ошибку тайм-аута (время ожидания входа истекло).

3 ответа

После небольшого исследования похоже, что невозможно удаленно запускать DTEXEC (его нужно запускать локально - удаленное выполнение не поддерживается).

Чтобы преодолеть это ограничение, в целом реализован следующий метод:

  • настроить SQL-задание для запуска пакета DTSX
  • настроить хранимую процедуру для запуска задания
  • используйте командную строку isql в файле BAT (удаленно выполненный) для запуска хранимой процедуры в соответствующем экземпляре SQL (с учетными данными SQL, а не с учетными данными компьютера).


Это очень возможно, и так легко. Нет необходимости иметь процедуру хранения, а также SQL-агент или веб-интерфейс или .NET-разработку. Я удивлен, что Microsoft никогда не предлагала это:

  • Запланировать задачу на SQL Server для запуска пакета DTSX. Отключите его, чтобы он не запускался, пока вы не выполнили его вручную с удаленного ПК.
  • Выполните задачу с ПК с помощью команды:

schtasks/run/tn MyTask [/s MySQLServer [/u [domain] user/p password]]/?

Примечание: если вам не нравится выставлять пароль, используйте команду "PSEXEC" для выполнения команды "schtasks" (загрузите бесплатный и мощный инструмент из http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx


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

Сказав это, вы также можете настроить свой веб-сервис для вызова локального пакетного файла, который содержит команду "DETEXEC".

licensed under cc by-sa 3.0 with attribution.