分享方式:


Encrypt

適用於: SQL Server Azure Data Factory 中的 SSIS Integration Runtime

dtutil 命令提示字元公用程式用來管理 SQL Server Integration Services 套件。 這個公用程式可以複製、移動、刪除封裝,或確認封裝是否存在。 下列三個位置的其中一個所儲存的任何 SSIS 套件都可以執行這些動作:Microsoft SQL Server 資料庫、SSIS 套件存放區和檔案系統。 如果公用程式存取存放在 msdb中的封裝,則命令提示字元可能會需要使用者名稱和密碼。 如果 SQL Server 的執行個體使用 SQL Server 驗證,則命令提示字元需要輸入使用者名稱和密碼。 如果遺漏使用者名稱,則 dtutil 會嘗試使用 Windows 驗證登入 SQL Server。 封裝的儲存類型是由 /SQL/FILE/DTS 等選項來識別。

dtutil 命令提示字元公用程式不支援使用命令檔或重新導向。

dtutil 命令提示公用程式包含下列功能:

  • 命令提示字元中的備註,會自動記錄命令提示字元動作,並使其易於了解。

  • 覆寫保護,會在您複製或移動封裝時,在覆寫現有封裝之前提示您進行確認。

  • 主控台說明,可提供有關 dtutil命令選項的資訊。

注意

您也可以在連線到 Integration Services 的執行個體時,透過 SQL Server Management Studio 以視覺化方式執行 dtutil 所執行的許多作業。 如需詳細資訊,請參閱套件管理 (SSIS 服務)

您可以依照任何順序來輸入這些選項。 垂直線 ("|") 字元是 OR 運算子,用來顯示可能的值。 您必須使用以 OR 垂直線分隔的其中一個選項。

所有選項的開頭都必須是斜線 (/) 或減號 (-)。 但是,請勿在斜線或減號與選項的文字之間加入空格,否則此命令會失敗。

引數必須是加上引號的字串,或不含空白的字串。

加上引號的字串之內的雙引號代表逸出的單引號。

除了密碼以外,選項和引數都沒有區分大小寫。

64 位元電腦上的安裝考量

在 64 位元電腦上,Integration Services 會安裝 64 位元版本的 dtexec 公用程式 (dtexec.exe) 和 dtutil 公用程式 (dtutil.exe)。 若要安裝 32 位元版本的這些 Integration Services 工具,則必須在安裝期間選取用戶端工具或 SQL Server Data Tools (SSDT)。

根據預設,同時安裝了 64 位元版和 32 位元版 Integration Services 命令提示字元公用程式的 64 位元電腦將會在命令提示字元上執行 32 位元版本。 執行 32 位元版本是因為 32 位元版本的目錄路徑在 PATH 環境變數中會出現在 64 位元版本的目錄路徑前面 (一般來說,32 位元的目錄路徑是 <磁碟機>>:\Program Files(x86)\Microsoft SQL Server\130\DTS\Binn,而 64 位元的目錄路徑是 <磁碟機>:\Program Files\Microsoft SQL Server\130\DTS\Binn)。

注意

如果您使用 SQL Server Agent 執行此公用程式,SQL Server Agent 會自動使用 64 位元版的公用程式。 SQL Server Agent 會使用此登錄 (而不是 PATH 環境變數) 來尋找此公用程式的正確可執行檔。

若要確保您可在命令提示字元上執行 64 位元版的公用程式,您可以採取下列其中一個動作:

  • 開啟 [命令提示字元] 視窗,然後將目錄切換到包含 64 位元版公用程式的目錄 (<磁碟機>:\Program Files\Microsoft SQL Server\130\DTS\Binn),再從該位置執行公用程式。

  • 在命令提示字元上,輸入 64 位元版公用程式的完整路徑 (<磁碟機>:\Program Files\Microsoft SQL Server\130\DTS\Binn),以執行此公用程式。

  • 在 PATH 環境變數中將 64 位元路徑 (<磁碟機>:\Program Files\Microsoft SQL Server\130\DTS\Binn) 置於 32 位元路徑 (<磁碟機>:\ Program Files(x86)\Microsoft SQL Server\130\DTS\Binn) 之前,可以永久變更該變數中的路徑順序。

語法

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 選項的命令列上,則會產生錯誤。

注意:盡可能使用 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 執行個體。 在不含 DESTUSERSIGN SQLCOPY SQL選項的命令列上指定 MOVE SQL 是錯的。
/Dump 處理序識別碼 (選擇性) 讓指定的處理序 ( dtexec 公用程式或 dtsDebugHost.exe 處理序) 暫停,並建立偵錯傾印檔案 .mdmp 和 .tmp。

注意:若要使用 /Dump選項,您必須被指派「偵錯程式」使用者權限 (SeDebugPrivilege)。

若要找出您想要暫停之處理序的 process ID ,請使用 Windows 工作管理員。

根據預設,Integration Services 會將偵錯傾印檔案儲存至 <磁碟機>:\Program Files\Microsoft SQL Server\130\Shared\ErrorDumps 資料夾。

如需 dtexec 公用程式和 dtsDebugHost.exe 處理序的詳細資訊,請參閱 dtexec UtilityBuilding, Deploying, and Debugging Custom Objects

如需有關偵錯傾印檔案的詳細資訊,請參閱< Generating Dump Files for Package Execution>。

注意:偵錯傾印檔案可能會包含敏感性資訊。 您可以使用存取控制清單 (ACL) 來限制這些檔案的存取權,或將這些檔案複製到具有限制性存取權的資料夾。
/DT[S] filespec 指定要操作的 SSIS 套件位於 SSIS 套件存放區中。 filespec 引數必須包含資料夾路徑,並以 SSIS 套件存放區的根目錄為開頭。 根據預設,組態檔中的根資料夾名稱為 "MSDB" 和 "File System"。您必須使用雙引號來隔開包含空格的路徑。

如果 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] 選項 顯示文字擴充說明來示範 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 引數指定用可變長度十六進位字串來表示的憑證識別碼。

如需詳細資訊,請參閱 Identify the Source of Packages with Digital Signatures(使用數位簽章識別封裝來源)。



** 重要事項 ** 當 Integration Services 設定為檢查套件的簽章時,將只會檢查數位簽章是否存在、是否有效,以及是否來自信任的來源。 Integration Services「不會」檢查套件是否經過變更。
/SourceP[assword] password 指定與 SQLSOURCEUSER 選項一起使用的密碼,以便擷取 SQL Server 執行個體 (使用 SQL Server 驗證) 上資料庫所儲存的 SSIS 套件。 在不含 SOURCEUSER 選項的命令列上指定 SOURCEPASSWORD 是錯的。

注意:盡可能使用 Windows 驗證。
/SourceS[erver] server_instance 指定與 SQL 選項一起使用的伺服器名稱,以擷取 SQL Server 中所儲存的 SSIS 套件。 在不含 SOURCESERVERSIGN SQLCOPY SQL選項的命令列上指定 MOVE SQL 是錯的。

您可以在伺服器名稱中新增反斜線和執行個體名稱來指定 SQL Server 執行個體的名稱。
/SourceU[ser] username 指定與 SOURCESERVER 選項一起使用的使用者名稱,以便擷取儲存在 SQL Server (使用 SQL Server 驗證) 中的 SSIS 套件。 在不含 SOURCEUSERSIGN SQLCOPY SQL選項的命令列上指定 MOVE SQL 是錯的。

注意:盡可能使用 Windows 驗證。
/SQ[L] package_path 指定 SSIS 套件的位置。 這個選項指出封裝儲存在 msdb 資料庫中。 package_path 引數指定 SSIS 套件的路徑和名稱。 資料夾名稱以反斜線做為結尾。

如果在下列任何選項的相同命令列中指定 SQL 選項,就會傳回 DTEXEC_DTEXECERROR:

DTS

FILE

SQL 選項可附帶下列選項中的零個或一個執行個體:

SOURCEUSER

SOURCEPASSWORD

SOURCESERVER



如果未加入 SOURCEUSERNAME ,將會使用 Windows 驗證存取封裝。 只有在SOURCEPASSWORD 存在時,才允許使用 SOURCEUSER 。 如果不包含 SOURCEPASSWORD ,則使用空白密碼。

** 重要事項 ** 請勿使用空白密碼。 請使用增強式密碼。

dtutil 結束碼

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

描述
0 已順利執行公用程式。
1 公用程式失敗。
4 公用程式找不到所要求的封裝。
5 公用程式無法載入所要求的封裝。
6 公用程式無法解析命令列,因為它包含語法或語意錯誤。

備註

您無法搭配 dtutil使用命令檔或重新導向。

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

範例

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

複製範例

若要將儲存在 SQL Server 本機執行個體 (使用 Windows 驗證) 上 msdb 資料庫中的套件複製到 SSIS 套件存放區,請使用下列語法:

dtutil /SQL srcPackage /COPY DTS;destFolder\destPackage   

若要從檔案系統的某個位置中,將封裝複製到另一個位置,並將這個副本命名為另一個名稱,請使用下列語法:

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

若要將本機檔案系統上套件複製到裝載在另一部電腦上的 SQL Server 執行個體,請使用下列語法:

dtutil /FILE c:\sourcepkg.dtsx /DestServer <servername> /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  

在命令提示字元下輸入命令時,請使用單一百分比符號 (%)。 若命令是使用在批次檔內,則使用雙百分比符號 (%%)。

刪除範例

若要刪除 SQL Server 執行個體 (使用 Windows 驗證) 上 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  

存在範例

若要判斷 SQL Server 本機執行個體 (使用 Windows 驗證) 上的 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 套件存放區中的套件移到 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  

注意

若要在具名伺服器之間移動封裝,請併入 SOURCESDESTS 選項及其引數。 您只能使用 SQL 選項來指定伺服器。

若要移除儲存在 SSIS 封裝存放區中的封裝,請使用下列語法:

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

若要移動檔案系統所儲存的封裝,請使用下列語法:

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

簽署範例

若要簽署 SQL Server 本機執行個體 (使用 Windows 驗證) 的 SQL Server 資料庫所儲存的套件,請使用下列語法:

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

若要尋找憑證相關資訊,請使用 CertMgr。 可在 CertMgr 公用程式中檢視雜湊碼,方法是選取憑證,然後按一下 [檢視] 來檢視屬性。 [詳細資料] 索引標籤提供有關認證的詳細資訊。 Thumbprint 屬性是做為雜湊值使用,其空格已移除。

注意

此範例使用的雜湊不是真正的雜湊。

如需詳細資訊,請參閱< Signing and Checking Code with Authenticode>的<CertMgr>一節。

加密範例

下列範例會利用完整的封裝加密和密碼,將檔案基礎的 PackageToEncrypt.dtsx 加密成檔案基礎的 EncryptedPackage.dts。 用於加密的密碼是 EncPswd

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

另請參閱

執行 Integration Services (SSIS) 套件