dtutil 实用工具
更新日期: 2006 年 7 月 17 日
dtutil 命令提示实用工具用于管理 SQL Server 2005 Integration Services (SSIS) 包。 该实用工具可以复制、移动、删除包,也可以验证包是否存在。 可对存储于以下三个位置之一的任何 SSIS 包执行上述操作:Microsoft SQL Server 数据库、SSIS 包存储区和文件系统。 包的存储类型由 /SQL、/FILE 和 /DTS 选项标识。
注意: |
---|
在 64 位计算机上,Integration Services 将同时安装 32 位和 64 位版本的 dtutil 实用工具 (dtexec.exe)。 |
注意: |
---|
在您连接到 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 包的复制目标。 如果目标 location 为 SQL,那么还必须在命令中指定 DestUser、DestPassword 和 DestServer 参数。
如果 Copy 操作的目标处已经有一个包,dtutil 将提示用户确认是否删除该包。 回答 Y 将覆盖包,回答 N 将结束程序。 如果该命令包含 Quiet 参数,则将不显示任何提示,并覆盖任何现有包。
/Dec[rypt] password
(可选)。 设置加载使用密码加密的包时所用的解密密码。
/Del[ete]
删除由 SQL、DTS 或 FILE 选项指定的包。 如果 dtutil 无法删除包,则程序将结束。
/DestP[assword] password
指定与 SQL 选项一起使用的密码,用于连接到使用 SQL Server 身份验证的 SQL Server 目标实例。 如果在不包含 DTSUSER 选项的命令行中指定 DESTPASSWORD,则将生成错误。
注意:
请尽可能使用 Windows 身份验证。.
/DestS[erver] server_instance
指定与任何导致目标被保存到 SQL Server 的操作一起使用的服务器名称。 该选项用于在保存 SSIS 包时,标识一个非本地或非默认的服务器。 在不包含与 SQL Server 关联的操作的命令行中指定 DESTSERVER 是错误的。 SIGN SQL、COPY SQL 或 MOVE SQL 选项的相应命令都可与该选项结合使用。
通过在服务器名中添加反斜杠和实例名称,可以指定 SQL Server 实例名称。
/DestU[ser] username
指定与 SIGN SQL、COPY SQL 和 MOVE SQL 选项一起使用的用户名,以连接到使用 SQL Server 身份验证的 SQL Server 实例。 在不包含 SIGN SQL、COPY SQL 或 MOVE 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 将尝试查找由 SQL、DTS 或 FILE 选项指定的包。 如果 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 操作。 此操作需要两个由分号分隔的参数:
- 目标参数可指定 SQL、FILE 或 DTS。 SQL 目标可包含 DESTUSER、DESTPASSWORD 和 DESTSERVER 选项。
- pathandname 参数指定包位置:SQL 使用包路径和包名称,FILE 使用 UNC 或本地路径,DTS 使用相对于 SSIS 包存储区的根目录的位置。 如果目标为 FILE 或 DTS,则路径参数将不包含文件名, 而使用指定位置的包名称作为文件名。
如果 MOVE 操作的目标处已经有一个包,则 dtutil 将提示您确认是否要覆盖这个包。 回答 Y 将覆盖包,回答 N 将结束程序。 如果该命令包含 QUIET 选项,则将不显示任何提示,并覆盖任何现有包。
/Q[uiet]
在执行包含 COPY、MOVE 或 SIGN 选项的命令时,停止可能显示的确认提示。 如果目标计算机中已经存在与指定包同名的包,或者如果已经对指定包进行了签名,则将显示这些提示。
/R[emark] text
向命令行中添加注释。 该注释参数是可选的。 如果注释文本包含空格,则文本必须用引号引起来。 可以在一个命令行中包含多个 REM 选项。
/Si[gn] {SQL | File | DTS}; path; hash
对 SSIS 包进行签名。 此操作使用三个由分号分隔的必要参数:
- 目标参数可指定 SQL、FILE 或 DTS。 SQL 目标可包含 DESTUSER、DESTPASSWORD 和 DESTSERVER 选项。
- Path 参数指定要操作的包的位置。
- Hash 参数指定以长度可变的十六进制字符串表示的证书标识符。
使用 CertMgr 实用工具可以找到有关证书的信息。 有关详细信息,请参阅 MSDN Library 中使用 Authenticode 签名和检查代码主题中的 CertMgr 部分。
/SourceP[assword] password
指定与 SQL 和 SOURCEUSER 选项一起使用的密码,以便可以对存储在 SQL Server 实例(使用 SQL Server 身份验证)的数据库中的 SSIS 包进行检索。 在不包含 SOURCEUSER 选项的命令行中指定 SOURCEPASSWORD 是错误的。
注意:
请尽可能使用 Windows 身份验证。
/SourceS[erver] server_instance
指定与 SQL 选项一起使用的服务器名称,以便可以检索存储在 SQL Server 中的 SSIS 包。 在不包含 SIGN SQL、COPYSQL 或 MOVESQL 选项的命令行中指定 SOURCESERVER 是错误的。
通过在服务器名中添加反斜杠和实例名称,可以指定 SQL Server 实例名称。
/SourceU[ser] username
指定与 SOURCESERVER 选项一起使用的用户名,以便可以对存储在使用 SQL Server 身份验证的 SQL Server 中的 SSIS 包进行检索。 在不包含 SIGN SQL、COPY SQL 或 MOVE SQL 选项的命令行中指定 SOURCEUSER 是错误的。
注意:
请尽可能使用 Windows 身份验证。
/SQ[L] package_path
指定 SSIS 包的位置。 该选项指示包存储在 msdb 数据库中。 package_path 参数指定 SSIS 包的路径和名称。 文件夹名以反斜杠结尾。
如果指定 SQL 选项的命令行中还有以下任一选项,则返回 DTEXEC_DTEXECERROR:
- DTS
- FILE
SQL 选项可以不附带实例,也可以附带下列选项的某个实例: - SOURCEUSER
- SOURCEPASSWORD
- SOURCESERVER
如果不包含 SOURCEUSERNAME,则使用 Windows 身份验证访问包。仅当存在 SOURCEUSER 时,才允许使用 SOURCEPASSWORD。 如果不包含 SOURCEPASSWORD,则使用空密码。
重要提示:
不要使用空密码。请使用强密码。
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
注意: |
---|
若要从命名服务器中删除包,可包含 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
注意: |
---|
若要确定命名服务器上是否存在包,可包含 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
注意: |
---|
若要将一个命名服务器中的包移动到另一个命名服务器,可包含 SOURCES 和 DESTS 选项及其参数。 只能使用 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 属性在删除空格后被用作哈希值。
注意: |
---|
此示例中用到的哈希并不是真正的哈希。 |
有关详细信息,请参阅使用 Authenticode 签名和检查代码中的 CertMgr 部分。
加密示例
以下示例使用完全包加密和密码将基于文件的 PackageToEncrypt.dtsx 加密为基于文件的 EncryptedPackage.dts。 加密所用的密码是 EncPswd。
dtutil /FILE PackageToEncrypt.dtsx /ENCRYPT file;EncryptedPackage.dtsx;3;EncPswd
请参阅
其他资源
如何在 Business Intelligence Development Studio 中运行包
64 位计算机上的 Integration Services 注意事项
帮助和信息
更改历史记录
发布日期 | 历史记录 |
---|---|
2006 年 7 月 17 日 |
|
2005 年 12 月 5 日 |
|