Encrypt
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 位目錄路徑為<drive>:\Program Files(x86)\Microsoft SQL Server\120\DTS\Binn,而 64 位目錄路徑為< drive>:\Program Files\Microsoft SQL Server\120\DTS\Binn。
注意
如果您使用 SQL Server Agent 執行此公用程式,SQL Server Agent 會自動使用 64 位元版的公用程式。 SQL Server Agent 會使用此登錄 (而不是 PATH 環境變數) 來尋找此公用程式的正確可執行檔。
若要確保您可在命令提示字元上執行 64 位元版的公用程式,您可以採取下列其中一個動作:
開啟命令提示字元視窗,將 變更為包含公用程式 64 位版本的目錄(<drive>:\Program Files\Microsoft SQL Server\120\DTS\Binn),然後從該位置執行公用程式。
在命令提示字元中,將完整路徑 (<drive>:\Program Files\Microsoft SQL Server\120\DTS\Binn) 輸入至 64 位版本的公用程式,以執行公用程式。
將 64 位路徑 (drive:\Program Files\Microsoft SQL Server\120\DTS\Binn) 放在變數的 32 位路徑之前,永久變更 PATH 環境變數中路徑的順序(<磁碟驅動器>>:\ Program Files(x86)\Microsoft SQL Server\120\DTS\Binn。<
語法
dtutil /option [value] [/option [value]]...
參數
選項 | 描述 |
---|---|
/? | 顯示命令提示字元選項。 |
/C[opy] location;destinationPathandPackageName | 對 SSIS 套件指定複製動作。 若要使用此參數,您必須先使用 /FI、 /SQ或 /DT 選項來指定封裝的位置。 接下來,指定目的地位置目的地封裝名稱。 destinationPathandPackageName 引數指定複製 SSIS 套件所在的位置。 如果目的地位置為 ,則必須在 命令中指定 DestUser、DestPassword 和 DestServer 自變數。SQL Copy 當動作在目的地遇到現有的套件時,dtutil 會提示使用者確認刪除套件。 回復 Y 會覆寫套件,而回復會 N 結束程式。 當命令包含 Quiet 引數時,不會出現提示,並且會覆寫任何現有的封裝。 |
/Dec[rypt] password | (選擇性)。 設定載入含密碼加密的封裝時,所用的解密密碼。 |
/Del[ete] | 刪除 SQL、 DTS 或 FILE 選項所指定的封裝。 如果 dtutil 無法刪除封裝,程式便會結束。 |
/DestP[assword] password | 指定與 SQL 選項搭配使用的密碼,用來連線到使用 SQL Server 驗證的目的地 SQL Server 執行個體。 如果 DESTPASSWORD 是指定在不含 DTSUSER 選項的命令列上,則會產生錯誤。 注意:可能的話,請使用 Windows Authentication。。 |
/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 執行個體。 在不含 DESTUSER 、 SIGN SQL或 COPY SQL選項的命令列上指定 MOVE SQL 是錯的。 |
/Dump 處理序識別碼 | (選擇性) 讓指定的處理序 ( dtexec 公用程式或 dtsDebugHost.exe 處理序) 暫停,並建立偵錯傾印檔案 .mdmp 和 .tmp。 注意:若要使用 /Dump選項,您必須被指派「偵錯程式」使用者權限 (SeDebugPrivilege)。 若要找出您想要暫停之處理序的 process ID ,請使用 Windows 工作管理員。 根據預設,Integration Services 會將偵錯傾印檔案儲存在磁碟驅動器>:\Program Files\Microsoft SQL Server\120\Shared\ErrorDumps 資料夾中<。 如需 dtexec 公用程式和 dtsDebugHost.exe 處理序的詳細資訊,請參閱 dtexec Utility 和 Building, 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 會嘗試找出透過 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] 選項 | 顯示文字擴充說明來示範 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 動作。 這個動作需要兩個以分號分隔的引數: 目的地引數可指定 SQL、 FILE或 DTS。 SQL 目的地可包含 DESTUSER、 DESTPASSWORD和 DESTSERVER 選項。 pathandname 引數指定套件位置:SQL 使用套件路徑和套件名稱,FILE 使用 UNC 或本機路徑,DTS 使用相對於 SSIS 套件存放區根目錄的位置。 當目的地為 FILE 或 DTS時,路徑引數不包含檔案名稱。 而是使用在指定位置的封裝名稱來做為檔案名稱。 MOVE 當動作在目的地遇到現有的套件時,dtutil 會提示您確認要覆寫封裝。 回復 Y 會覆寫套件,而回復會 N 結束程式。 當命令包含 QUIET 選項時,不會出現提示,並且會覆寫任何現有的封裝。 |
/Q[uiet] | 停止執行包含、 MOVE 或 SIGN 選項的命令時,可能會出現的COPY 確認提示。 如果目的地電腦中已有指定封裝的同名封裝,或已簽署了指定的封裝,就會出現這些提示。 |
/R[emark] text | 在命令列中加入註解。 註解引數是選擇性的。 如果註解文字包括空格,就必須用引號括住文字。 您可以在單一命令列中併入多個 REM 選項。 |
/Si[gn] {SQL | File | DTS}; path; hash | 簽署 SSIS 套件。 此動作會使用三個必要自變數,以分號分隔: 目的地引數可指定 SQL、 FILE或 DTS。 SQL 目的地可包含 DESTUSER、 DESTPASSWORD 和 DESTSERVER 選項。 path 引數指定要處理之封裝的位置。 hash 引數指定用可變長度十六進位字串來表示的憑證識別碼。 ** 重要事項 ** 當 Integration Services 設定為檢查套件的簽章時,將只會檢查數位簽章是否存在、是否有效,以及是否來自信任的來源。 Integration Services「不會」檢查套件是否經過變更。 如需詳細資訊,請參閱 Identify the Source of Packages with Digital Signatures(使用數位簽章識別封裝來源)。 |
/SourceP[assword] password | 指定與 SQL 和 SOURCEUSER 選項一起使用的密碼,以便擷取 SQL Server 執行個體 (使用 SQL Server 驗證) 上資料庫所儲存的 SSIS 套件。 在不包含 SOURCEUSER 選項的命令列中指定SOURCEPASSWORD是錯誤的。注意:可能的話,請使用 Windows 驗證。 |
/SourceS[erver] server_instance | 指定與 選項搭配 SQL 使用的伺服器名稱,以啟用擷取儲存在 SQL Server 中的 SSIS 套件。 在不含 SOURCESERVER 、 SIGN SQL或 COPY SQL選項的命令列上指定 MOVE SQL 是錯的。您可以在伺服器名稱中新增反斜線和執行個體名稱來指定 SQL Server 執行個體的名稱。 |
/SourceU[ser] username | 指定與 SOURCESERVER 選項一起使用的使用者名稱,以便擷取儲存在 SQL Server (使用 SQL Server 驗證) 中的 SSIS 套件。 在不含 SOURCEUSER 、 SIGN SQL或 COPY SQL選項的命令列上指定 MOVE SQL 是錯的。 注意:可能的話,請使用 Windows 驗證。 |
/SQ[L] package_path | 指定 SSIS 套件的位置。 這個選項指出封裝儲存在 msdb 資料庫中。 package_path 引數指定 SSIS 套件的路徑和名稱。 資料夾名稱以反斜線做為結尾。 如果在下列任何選項的相同命令列中指定 SQL 選項,就會傳回 DTEXEC_DTEXECERROR: DTS FILE SQL。 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
注意
若要將封裝從某個具名伺服器移至另一部伺服器,請包含 SOURCES
和 DESTS
選項及其自變數。 您只能使用 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