services from ejecutar dtsx desde deploy bat sql-server-2005 ssis

sql server 2005 - from - ¿Cómo ejecutar remotamente un paquete DTSX desde el archivo bat?



execute ssis package from c# (3)

Estoy intentando ejecutar remotamente un paquete DTSX desde un archivo bat con este comando:

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

Esto funciona bien localmente pero falla de forma remota (tengo derechos de administrador en la máquina que estoy señalando y también tengo permisos de SQL) Recibo un error de tiempo de espera (el tiempo de espera de inicio de sesión expiró).


Después de un poco de investigación, parece que es imposible ejecutar DTEXEC de forma remota (debe ejecutarse localmente, la ejecución remota no es compatible).

Para superar esta limitación, el siguiente método parece estar ampliamente implementado:

  1. configurar un trabajo SQL para ejecutar el paquete DTSX
  2. configurar un procedimiento almacenado para ejecutar el trabajo
  3. use la línea de comando isql en un archivo BAT (ejecutado de forma remota) para ejecutar el procedimiento almacenado en la instancia SQL correspondiente (con credenciales SQL y no credenciales de máquina)

SSIS también expone un servicio web en el servidor de alojamiento. Podría hacerlo a través de un código, consultar una máquina para paquetes, ejecutar paquetes a través de una base de datos o sistema de archivos y agregar / modificar variables del paquete programáticamente a través de cualquier plataforma de programación que desee.

Dicho esto, también podría configurar su servicio web para llamar a su archivo local por lotes que contiene su comando ''DETEXEC''.


Es muy posible, y tan fácil. No es necesario tener un procedimiento de tienda, ni un agente SQL, ni Web, ni desarrollo .NET. Me sorprende que Microsoft nunca sugiriera esto:

  1. Programe una tarea en SQL Server para ejecutar el paquete DTSX. Desactívelo, para que no se ejecute hasta que lo ejecute manualmente desde una PC remota.
  2. Ejecute la tarea desde la PC usando el comando:

schtasks / run / tn MyTask [/ s MySQLServer [/ u [dominio] usuario / p contraseña]] /?

Nota: si no le gusta exponer la contraseña, use el comando ''PSEXEC'' para ejecutar el comando ''schtasks'' (descargue la herramienta gratuita y poderosa de http://technet.microsoft.com/en-us/sysinternals/bb897553. aspx