dtutil 公用程式

更新: 2006 年 7 月 17 日

dtutil 命令提示字元公用程式用來管理 SQL Server 2005 Integration Services (SSIS) 封裝。這個公用程式可以複製、移動、刪除封裝,或確認封裝是否存在。下列三個位置所儲存的任何 SSIS 封裝都可以執行這些動作:Microsoft SQL Server 資料庫、SSIS 封裝存放區和檔案系統。封裝的儲存類型是由 /SQL/FILE/DTS 等選項來識別。

ms162820.note(zh-tw,SQL.90).gif附註:
在 64 位元電腦上,Integration Services 會同時安裝 32 位元和 64 位元版本的 dtutil 公用程式 (dtexec.exe)。
ms162820.note(zh-tw,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 執行個體時,所使用的密碼。如果 DESTPASSWORD 是指定在不含 DTSUSER 選項的命令列上,則會產生錯誤。

ms162820.note(zh-tw,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 - 路徑是目的地封裝名稱。
  • FILE - 路徑是指封裝的完整路徑和檔案名稱。
  • 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 選項及描述其用法。option 引數是選擇性的。如果包含這個引數,說明文字會包括指定選項的詳細資訊。下列範例會顯示所有選項的說明:

dtutil /H

下列兩個範例顯示如何使用 /H 選項來顯示特定選項的擴充說明,例如本範例中的 /Q [uiet] 選項:

dtutil /Help Quiet

dtutil /H Q

/I[DRegenerate]

建立封裝的新 GUID 及更新封裝識別碼屬性。複製封裝時,封裝識別碼保持不變;因此,記錄檔包含兩個封裝相同的 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 執行個體上之資料庫中的 SSIS 封裝,而該執行個體使用 SQL Server 驗證。在不含 SOURCEUSER 選項的命令列上指定 SOURCEPASSWORD 是錯的。

ms162820.note(zh-tw,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-tw,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-tw,SQL.90).gif重要事項:

密碼不能空白。請使用增強式密碼。

dtutil 結束碼

dtutil 可設定結束碼,以便在偵測到語法錯誤、使用不正確的引數或指定無效的選項組合時,向您發出警告。要不然,公用程式會報告「已成功地完成作業」。下表列出 dtutil 公用程式結束時所能設定的值。

描述

0

已順利執行公用程式。

1

公用程式失敗。

4

公用程式找不到所要求的封裝。

5

公用程式無法載入所要求的封裝。

6

公用程式無法解析命令列,因為它包含語法或語意錯誤。

備註

您不能搭配 dtutil 來使用命令檔或重新導向。

命令列的選項順序不重要。

範例

下列範例詳細說明一般命令列的使用狀況。

複製範例

若要將儲存在 SQL Server 的本機執行個體 (使用 Windows 驗證) 上的 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 驗證。

若要在複製封裝之後建立封裝的新識別碼,請使用下列語法:

dtutil /I /FILE copiedpkg.dtsx 

若要為特定資料夾的所有封裝建立新的識別碼,請使用下列語法:

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-tw,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-tw,SQL.90).gif附註:
若要判斷具名伺服器中是否存在某個封裝,請併入 SOURCESERVER 選項及其引數。您只能利用 SQL 選項來指定伺服器。

若要判斷封裝是否存在於本機封裝存放區內,請使用下列語法:

dtutil /DTS srcPackage.dtsx /EXISTS

若要判斷本機檔案系統中是否存在某個封裝,請使用下列語法:

dtutil /FILE c:\srcPackage.dtsx /EXISTS

移動範例

若要將儲存在 SSIS 封裝存放區內的封裝移到 SQL Server 的本機執行個體 (使用 Windows 驗證) 上的 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-tw,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-tw,SQL.90).gif附註:
此範例使用的雜湊不是真正的雜湊。

如需詳細資訊,請參閱<Signing and Checking Code with 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 日

變更的內容:
  • 新增如何簽署範例封裝的描述。
  • 新增如何加密封裝的範例。
  • 擴充描述如何使用複製和移動選項。