首页 > 解决方案 > dtutil 从远程导入 ssis 包

问题描述

我正在尝试将 ssis 包 (.dtsx) 从一台服务器远程导入到另一台服务器,但我遇到了一个奇怪的问题。(dtsx在Server-02上,需要在Server-01上导入)

让我用 3 个命令来解释:

在 Server-01 上运行

osql  -E -h  -Q "select name from  [msdb].[dbo].[sysssispackages] where name like '%MIC%'"

这什么都不返回,我的包还没有导入,没关系。

我在 Server-01 上有一个 .bat 文件,其中包含以下命令:

"C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\dtutil.exe" /FILE \\Server-02\D$\BAM_DM_IBZMICVU001.DTSX /COPY SQL;BAM_DM_IBZMICVU001 /QUIET

DTSX 位于 Server-02 上的 D:\,.bat 文件位于 Server-01 上的 D:\。必须运行此 bat 文件才能导入 ssis 包。

然后在 Server-02 上运行

WMIC /NODE:"Server-01" process call create "cmd.exe /A /C D:\\BAM_DM_IBZMICVU001.bat"

它返回成功状态。但是当我再次在 Server-01 上运行我的 osql 命令时,它仍然返回 0 结果。好像还没有导入包...

我们可以认为 bat 文件不起作用,但如果我在 Server-01 上通过双击直接运行 bat 文件,它也可以成功运行。然后我做osql选择,它返回1个结果,包已经成功导入。

这一刻,我以为bat脚本根本就没有远程执行。所以我稍微改了一下。

echo "C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\dtutil.exe" /FILE \\Server-02\D$\BAM_DM_IBZMICVU001.DTSX /COPY SQL;BAM_DM_IBZMICVU001 /QUIET > D:\debug.txt

然后从 Server-02

WMIC /NODE:"Server-01" process call create "cmd.exe /A /C D:\\BAM_DM_IBZMICVU001.bat"

D:\debug.txt 已经在 Server-01 上成功创建,这意味着 bat 脚本也执行得很好...

知道我的情况会发生什么吗?

标签: sql-serverbatch-filessis

解决方案


推荐阅读