dtutil 实用工具

更新日期: 2006 年 7 月 17 日

dtutil 命令提示实用工具用于管理 SQL Server 2005 Integration Services (SSIS) 包。 该实用工具可以复制、移动、删除包,也可以验证包是否存在。 可对存储于以下三个位置之一的任何 SSIS 包执行上述操作:Microsoft SQL Server 数据库、SSIS 包存储区和文件系统。 包的存储类型由 /SQL/FILE/DTS 选项标识。

ms162820.note(zh-cn,SQL.90).gif注意:
在 64 位计算机上,Integration Services 将同时安装 32 位和 64 位版本的 dtutil 实用工具 (dtexec.exe)。
ms162820.note(zh-cn,SQL.90).gif注意:
在您连接到 Integration Services 实例时,也可以直观地在 SQL Server Management Studio 中执行由 dtutil 执行的许多操作。 有关详细信息,请参阅管理 Integration Services 包

这些选项的键入顺序不分先后。 竖线字符 ("|") 是 OR 运算符,用于显示可能的值。 您必须使用一个由 OR 竖线分隔的选项。

所有选项必须以斜杠 (/) 或减号 (-) 开头。

参数必须是用引号括起来的字符串,或是没有包含任何空格的字符串。

用引号引起来的字符串中的双引号表示转义的单引号。

除密码外,其他选项和参数都不区分大小写。

语法

dtutil /option [value] [/option [value]]...

参数

选项

说明

/?

显示命令提示符选项。

/C[opy] location;destinationPathandPackageName

指定对 SSIS 包的复制操作。 使用此参数需要先使用 /FI/SQ/DT 选项指定包的位置。 然后指定目标位置和目标包名称。 destinationPathandPackageName 参数指定 SSIS 包的复制目标。 如果目标 locationSQL,那么还必须在命令中指定 DestUserDestPasswordDestServer 参数。

如果 Copy 操作的目标处已经有一个包,dtutil 将提示用户确认是否删除该包。 回答 Y 将覆盖包,回答 N 将结束程序。 如果该命令包含 Quiet 参数,则将不显示任何提示,并覆盖任何现有包。

/Dec[rypt] password

(可选)。 设置加载使用密码加密的包时所用的解密密码。

/Del[ete]

删除由 SQLDTSFILE 选项指定的包。 如果 dtutil 无法删除包,则程序将结束。

/DestP[assword] password

指定与 SQL 选项一起使用的密码,用于连接到使用 SQL Server 身份验证的 SQL Server 目标实例。 如果在不包含 DTSUSER 选项的命令行中指定 DESTPASSWORD,则将生成错误。

ms162820.note(zh-cn,SQL.90).gif注意:

请尽可能使用 Windows 身份验证。.

/DestS[erver] server_instance

指定与任何导致目标被保存到 SQL Server 的操作一起使用的服务器名称。 该选项用于在保存 SSIS 包时,标识一个非本地或非默认的服务器。 在不包含与 SQL Server 关联的操作的命令行中指定 DESTSERVER 是错误的。 SIGN SQLCOPY SQLMOVE SQL 选项的相应命令都可与该选项结合使用。

通过在服务器名中添加反斜杠和实例名称,可以指定 SQL Server 实例名称。

/DestU[ser] username

指定与 SIGN SQLCOPY SQLMOVE SQL 选项一起使用的用户名,以连接到使用 SQL Server 身份验证的 SQL Server 实例。 在不包含 SIGN SQLCOPY SQLMOVE SQL 选项的命令行中指定 DESTUSER 是错误的。

/DT[S] filespec

此选项指定要操作的 SSIS 包位于 SSIS 包存储区。 filespec 参数是一个相对于 SSIS 包存储区根目录的路径。

如果指定 DT[S] 选项的命令行中还有以下任一选项,则返回 DTEXEC_DTEXECERROR:

  • FILE
  • SQL
  • SOURCEUSER
  • SOURCEPASSWORD
  • SOURCESERVER

/En[crypt] {SQL | FILE}; Path;ProtectionLevel[;password]

(可选)。 使用指定的保护级别和密码对加载的包进行加密,并将其保存到 Path 中指定的位置。 ProtectionLevel 确定是否需要密码。

  • SQL - Path 为目标包名称。
  • FILE - Path 为包的完全限定路径和文件名。
  • DTS - 当前不支持该选项。

ProtectionLevel 选项:

级别 0:提取敏感信息。

级别 1:使用本地用户凭据对敏感信息进行加密。

级别 2:使用必需的密码对敏感信息进行加密。

级别 3:使用必需的密码对包进行加密。

级别 4:使用本地用户凭据对包进行加密。

级别 5:包使用 SQL Server 存储加密。

/Ex[ists]

(可选)。 用于确定包是否存在。dtutil 将尝试查找由 SQLDTSFILE 选项指定的包。 如果 dtutil 找不到指定的包,则返回 DTEXEC_DTEXECERROR。

/FC[reate] {SQL | DTS};ParentFolderPath;NewFolderName

(可选)。 创建一个新文件夹,该文件夹的名称是在 NewFolderName 中指定的。 新文件夹的位置由 ParentFolderPath 指示。

/FDe[lete] {SQL | DTS}[;ParentFolderPath;FolderName]

(可选)。 从 SQL Server 或 SSIS 中删除由 FolderName 中的名称指定的文件夹。 要删除的文件夹的位置由 ParentFolderPath 指示。

/FDi[rectory] {SQL | DTS};FolderPath[;S]

(可选)。 列出 SSIS 或 SQL Server 中的文件夹中的内容(文件夹和包)。 可选参数 FolderPath 指定要查看其内容的文件夹。 可选参数 S 指定要查看 FolderPath 中所指定文件夹的子文件夹的内容列表。

/FE[xists ] {SQL | DTS};FolderPath

(可选)。 验证 SSIS 或 SQL Server 中是否存在指定的文件夹。 FolderPath 参数是要验证的文件夹的路径和名称。

/Fi[le] filespec

此选项指定要操作的 SSIS 包位于文件系统中。 filespec 值可以是通用命名约定 (UNC) 路径或本地路径。

如果指定 File 选项的命令行中还有以下任一选项,则返回 DTEXEC_DTEXECERROR:

  • DTS
  • SQL
  • SOURCEUSER
  • SOURCEPASSWORD
  • SOURCESERVER

/FR[ename] {SQL | DTS} [;ParentFolderPath; OldFolderName;NewFolderName]

(可选)。 重命名 SSIS 或 SQL Server 中的文件夹。 ParentFolderPath 是要重命名的文件夹的位置。 OldFolderName 是文件夹的当前名称,NewFolderName 是要为文件夹提供的新名称。

/H[elp] option

显示详细的文本帮助,该帮助可以显示 dtutil 的各个选项并说明其用法。 该选项参数是可选的。 如果包含该参数,则帮助文本将包含有关指定选项的详细信息。 以下示例将显示所有选项的帮助:

dtutil /H

下列两个示例显示如何使用 /H 选项显示特定选项(本例中为 /Q [uiet] 选项)的详细帮助:

dtutil /Help Quiet

dtutil /H Q

/I[DRegenerate]

为包创建新的 GUID 并更新包 ID 属性。 复制包后,包 ID 保持不变;因此,对于两个包,日志文件包含的 GUID 相同。 该操作为新复制的包创建新的 GUID,以便将其与原始包区分开。

/M[ove] {SQL | File | DTS}; pathandname

指定对 SSIS 包的移动操作。 若要使用该参数,请先使用 /FI/SQ/DT 选项指定包的位置。 然后指定 Move 操作。 此操作需要两个由分号分隔的参数:

  • 目标参数可指定 SQLFILEDTSSQL 目标可包含 DESTUSERDESTPASSWORDDESTSERVER 选项。
  • pathandname 参数指定包位置:SQL 使用包路径和包名称,FILE 使用 UNC 或本地路径,DTS 使用相对于 SSIS 包存储区的根目录的位置。 如果目标为 FILEDTS,则路径参数将不包含文件名, 而使用指定位置的包名称作为文件名。

如果 MOVE 操作的目标处已经有一个包,则 dtutil 将提示您确认是否要覆盖这个包。 回答 Y 将覆盖包,回答 N 将结束程序。 如果该命令包含 QUIET 选项,则将不显示任何提示,并覆盖任何现有包。

/Q[uiet]

在执行包含 COPYMOVESIGN 选项的命令时,停止可能显示的确认提示。 如果目标计算机中已经存在与指定包同名的包,或者如果已经对指定包进行了签名,则将显示这些提示。

/R[emark] text

向命令行中添加注释。 该注释参数是可选的。 如果注释文本包含空格,则文本必须用引号引起来。 可以在一个命令行中包含多个 REM 选项。

/Si[gn] {SQL | File | DTS}; path; hash

对 SSIS 包进行签名。 此操作使用三个由分号分隔的必要参数:

  • 目标参数可指定 SQLFILEDTS。 SQL 目标可包含 DESTUSERDESTPASSWORDDESTSERVER 选项。
  • Path 参数指定要操作的包的位置。
  • Hash 参数指定以长度可变的十六进制字符串表示的证书标识符。

使用 CertMgr 实用工具可以找到有关证书的信息。 有关详细信息,请参阅 MSDN Library 中使用 Authenticode 签名和检查代码主题中的 CertMgr 部分。

/SourceP[assword] password

指定与 SQLSOURCEUSER 选项一起使用的密码,以便可以对存储在 SQL Server 实例(使用 SQL Server 身份验证)的数据库中的 SSIS 包进行检索。 在不包含 SOURCEUSER 选项的命令行中指定 SOURCEPASSWORD 是错误的。

ms162820.note(zh-cn,SQL.90).gif注意:

请尽可能使用 Windows 身份验证。

/SourceS[erver] server_instance

指定与 SQL 选项一起使用的服务器名称,以便可以检索存储在 SQL Server 中的 SSIS 包。 在不包含 SIGN SQLCOPYSQLMOVESQL 选项的命令行中指定 SOURCESERVER 是错误的。

通过在服务器名中添加反斜杠和实例名称,可以指定 SQL Server 实例名称。

/SourceU[ser] username

指定与 SOURCESERVER 选项一起使用的用户名,以便可以对存储在使用 SQL Server 身份验证的 SQL Server 中的 SSIS 包进行检索。 在不包含 SIGN SQLCOPY SQLMOVE SQL 选项的命令行中指定 SOURCEUSER 是错误的。

ms162820.note(zh-cn,SQL.90).gif注意:

请尽可能使用 Windows 身份验证。

/SQ[L] package_path

指定 SSIS 包的位置。 该选项指示包存储在 msdb 数据库中。 package_path 参数指定 SSIS 包的路径和名称。 文件夹名以反斜杠结尾。

如果指定 SQL 选项的命令行中还有以下任一选项,则返回 DTEXEC_DTEXECERROR:

  • DTS
  • FILE
    SQL 选项可以不附带实例,也可以附带下列选项的某个实例:
  • SOURCEUSER
  • SOURCEPASSWORD
  • SOURCESERVER

如果不包含 SOURCEUSERNAME,则使用 Windows 身份验证访问包。仅当存在 SOURCEUSER 时,才允许使用 SOURCEPASSWORD。 如果不包含 SOURCEPASSWORD,则使用空密码。

ms162820.note(zh-cn,SQL.90).gif重要提示:

不要使用空密码。请使用强密码。

dtutil 退出代码

如果检测到语法错误、使用了错误参数或指定了无效的选项组合,dtutil 将设置退出代码以向您发出警报。 否则,该实用工具将报告“操作已成功完成”。 下表列出了 dtutil 实用工具可在退出时设置的值。

说明

0

已成功执行此实用工具。

1

此实用工具已失败。

4

此实用工具找不到请求的包。

5

此实用工具无法加载请求的包。

6

此实用工具无法解析命令行,因为它包含语法或语义错误。

备注

命令文件或重定向不能与 dtutil 一起使用。

命令行中选项的顺序不分先后。

示例

以下示例详细说明了典型的命令行使用方法。

复制示例

若要将存储在使用 Windows 身份验证的 SQL Server 本地实例中 msdb 数据库的包复制到 SSIS 包存储区,可使用以下语法:

dtutil /SQL srcPackage /COPY DTS;destPackage 

若要将包从文件系统中的某个位置复制到其他位置,并为副本提供一个不同的名称,可使用以下语法:

dtutil /FILE c:\myPackages\mypackage.dtsx /COPY FILE;c:\myTestPackages\mynewpackage.dtsx

若要将本地文件系统中的包复制到其他计算机上承载的 SQL Server 实例,可使用以下语法:

dtutil / FILE c:\sourcepkg.dtsx / COPY SQL;destpkgname

由于未使用 /DestU[ser]/DestP[assword] 选项,因此假定使用 Windows 身份验证。

若要在复制某个包后为其创建新的 ID,可使用以下语法:

dtutil /I /FILE copiedpkg.dtsx 

若要为某特定文件夹中的所有包创建新的 ID,可使用以下语法:

for %%f in (C:\test\SSISPackages\*.dtsx) do dtutil.exe /I /FILE %%f

在命令提示符下键入命令时,使用一个百分号 (%)。 如果在批处理文件内使用命令,则使用两个百分号 (%%)。

删除示例

若要删除存储在使用 Windows 身份验证的 SQL Server 实例中的 msdb 数据库中的包,可使用以下语法:

dtutil /SQL delPackage /DELETE

若要删除存储在使用 SQL Server 身份验证的 SQL Server 实例中的 msdb 数据库中的包,可使用以下语法:

dtutil /SQL delPackage /SOURCEUSER srcUserName /SOURCEPASSWORD #8nGs*w7F /DELETE
ms162820.note(zh-cn,SQL.90).gif注意:
若要从命名服务器中删除包,可包含 SOURCESERVER 选项及其参数。 只能使用 SQL 选项指定服务器。

若要删除存储于 SSIS 包存储区中的包,可使用以下语法:

dtutil /DTS delPackage.dtsx /DELETE

若要删除存储在文件系统中的包,可使用以下语法:

dtutil /FILE c:\delPackage.dtsx /DELETE

退出示例

若要确定使用 Windows 身份验证的 SQL Server 本地实例中的 msdb 数据库中是否存在包,可使用以下语法:

dtutil /SQL srcPackage /EXISTS

若要确定使用 SQL Server 身份验证的 SQL Server 本地实例中的 msdb 数据库中是否存在包,可使用以下语法:

dtutil SQL srcPackage /SOURCEUSER srcUserName /SOURCEPASSWORD *hY$d56b /EXISTS
ms162820.note(zh-cn,SQL.90).gif注意:
若要确定命名服务器上是否存在包,可包含 SOURCESERVER 选项及其参数。 只能使用 SQL 选项指定服务器。

若要确定本地包存储区中是否存在包,可使用以下语法:

dtutil /DTS srcPackage.dtsx /EXISTS

若要确定本地文件系统中是否存在包,可使用以下语法:

dtutil /FILE c:\srcPackage.dtsx /EXISTS

移动示例

若要将 SSIS 包存储区中存储的包移动到使用 Windows 身份验证的 SQL Server 本地实例中的 msdb 数据库,可使用以下语法:

dtutil /DTS srcPackage.dtsx /MOVE SQL;destPackage

若要将存储在 SQL Server 本地实例(使用 SQL Server 身份验证)中的 msdb 数据库中的包移动到 SQL Server 其他本地实例(使用 SQL Server 身份验证)中的 msdb 数据库中,可使用以下语法:

dtutil /SQL srcPackage /SOURCEUSER srcUserName /SOURCEPASSWORD $Hj45jhd@X /MOVE SQL;destPackage /DESTUSER destUserName /DESTPASSWORD !38dsFH@v
ms162820.note(zh-cn,SQL.90).gif注意:
若要将一个命名服务器中的包移动到另一个命名服务器,可包含 SOURCESDESTS 选项及其参数。 只能使用 SQL 选项指定服务器。

若要移动存储在 SSIS 包存储区中的包,可使用以下语法:

dtutil /DTS srcPackage.dtsx /MOVE DTS;destPackage.dtsx

若要移动存储在文件系统中的包,可使用以下语法:

dtutil /FILE c:\srcPackage.dtsx /MOVE FILE;c:\destPackage.dtsx

签名示例

若要对存储在使用 Windows 身份验证的 SQL Server 本地实例中的 SQL Server 数据库中的包签名,可使用以下语法:

dtutil /FILE srcPackage.dtsx /SIGN FILE;destpkg.dtsx;1767832648918a9d989fdac9819873a91f919

若要查找有关证书的信息,请使用 CertMgr。 在 CertMgr 实用工具中选择证书可查看哈希代码,然后单击**“视图”**可查看属性。 **“详细信息”**选项卡提供了有关证书的详细信息。 Thumbprint 属性在删除空格后被用作哈希值。

ms162820.note(zh-cn,SQL.90).gif注意:
此示例中用到的哈希并不是真正的哈希。

有关详细信息,请参阅使用 Authenticode 签名和检查代码中的 CertMgr 部分。

加密示例

以下示例使用完全包加密和密码将基于文件的 PackageToEncrypt.dtsx 加密为基于文件的 EncryptedPackage.dts。 加密所用的密码是 EncPswd

dtutil /FILE PackageToEncrypt.dtsx /ENCRYPT file;EncryptedPackage.dtsx;3;EncPswd

请参阅

其他资源

如何在 Business Intelligence Development Studio 中运行包
64 位计算机上的 Integration Services 注意事项

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2006 年 7 月 17 日

更改的内容:
  • 更正了有关名称和 SOURCESERVER 选项。
  • 说明了可在 SQL Server Management Studio 中执行 dtutil 任务的功能。

2005 年 12 月 5 日

更改的内容:
  • 添加了如何签署示例包的说明。
  • 添加了如何对包加密的示例。
  • 扩展了复制和移动选项的使用方法说明。