dtutil ユーティリティ
dtutil コマンド プロンプト ユーティリティは、SQL Server Integration Services パッケージの管理に使用します。 このユーティリティを使用して、パッケージのコピー、移動、削除を行ったり、パッケージの存在を確認することができます。 これらの操作は SSIS パッケージ上で実行できます。このパッケージは、Microsoft SQL Server データベース、SSIS パッケージ ストア、およびファイル システムの 3 つの場所のいずれかに格納されます。 このユーティリティが msdb に格納されているパッケージにアクセスする場合、コマンド プロンプトでユーザー名とパスワードが必要となる場合があります。 SQL Server のインスタンスで SQL Server 認証を使用する場合、コマンド プロンプトではユーザー名とパスワードの両方が必要です。 ユーザー名を入力しない場合、dtutil は Windows 認証を使用して SQL Server にログオンしようとします。 パッケージのストレージ型は /SQL、/FILE、および /DTS オプションで指定します。
dtutil コマンド プロンプト ユーティリティでは、コマンド ファイルの使用およびリダイレクションはサポートされていません。
dtutil コマンド プロンプト ユーティリティには、次の機能が含まれます。
コマンド プロンプトの解説。これによってコマンド プロンプトのアクションを自己文書化し、理解しやすくします。
上書きの保護。パッケージをコピーまたは移動する場合、既存のパッケージを上書きする前に確認メッセージが表示されます。
コンソール ヘルプ。dtutil のコマンド オプションに関する情報が提供されます。
注 |
---|
Integration Services のインスタンスに接続している場合、dtutil によって実行される操作の多くは、SQL Server Management Studio で確認しながら実行することもできます。 詳細については、「パッケージの管理 (SSIS サービス)」を参照してください。 |
オプションを入力する順序は任意です。 パイプ (|) 文字は OR 演算子を表し、利用可能な値を示すために使用されます。 OR パイプで区切られたオプションのうちの 1 つを使用する必要があります。
すべてのオプションは、スラッシュ (/) またはマイナス記号 (-) で始まる必要があります。 ただし、オプションのテキストとスラッシュ (/) またはマイナス記号 (-) の間に空白を入れないでください。空白を入れると、コマンドの実行が失敗します。
引数は、引用符で囲むか、空白を含まない文字列を指定する必要があります。
引用符で囲まれた文字列内に二重引用符がある場合は、単一引用符がエスケープされていることを表します。
パスワードを除いて、オプションおよび引数では大文字と小文字が区別されません。
64 ビット コンピューターでのインストールに関する注意点
64 ビット コンピューターには、Integration Services によって 64 ビット版の dtexec ユーティリティ (dtexec.exe) および dtutil ユーティリティ (dtutil.exe) がインストールされます。 32 ビット版のこれらの Integration Services ツールをインストールするには、セットアップ中に [クライアント ツール] または [SQL Server データ ツール (SSDT)] を選択する必要があります。
既定では、64 ビットと 32 ビットの両方のバージョンの Integration Services コマンド プロンプト ユーティリティがインストールされている 64 ビット コンピューターでは、コマンド プロンプトで 32 ビット バージョンが実行されます。 これは、PATH 環境変数で、32 ビット バージョンのディレクトリ パスが 64 ビット バージョンのディレクトリ パスより前に配置されているためです (通常、32 ビットのディレクトリ パスは <drive>:\Program Files(x86)\Microsoft SQL Server\110\DTS\Binn で、64 ビットのディレクトリ パスは <drive>:\Program Files\Microsoft SQL Server\110\DTS\Binn です)。
注 |
---|
SQL Server エージェントを使用してユーティリティを実行する場合は、SQL Server エージェントによって 64 ビット バージョンのユーティリティが自動的に使用されます。 SQL Server エージェントでは、PATH 環境変数ではなくレジストリを使用してユーティリティの適切な実行可能ファイルが特定されます。 |
コマンド プロンプトで 64 ビット バージョンのユーティリティが実行されるようにするには、次のいずれかの操作を実行します。
コマンド プロンプト ウィンドウを開いて、64 ビット バージョンのユーティリティが格納されたディレクトリ (<drive>:\Program Files\Microsoft SQL Server\110\DTS\Binn) に移動し、その場所からユーティリティを実行します。
コマンド プロンプトで、64 ビット バージョンのユーティリティの完全なパス (<drive>:\Program Files\Microsoft SQL Server\110\DTS\Binn) を入力してユーティリティを実行します。
PATH 環境変数で、64 ビットのパス (<drive>:\Program Files\Microsoft SQL Server\110\DTS\Binn) を 32 ビットのパス (<drive>:\Program Files(x86)\Microsoft SQL Server\110\DTS\Binn) より前に配置してパスの順序を永続的に変更します。
構文
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 Server 認証を使用している SQL Server インスタンスに接続するために SQL オプションで使用されるパスワードを指定します。 コマンド ラインで DTSUSER オプションを指定せずに DESTPASSWORD を指定すると、エラーが生成されます。
|
||||
/DestS[erver] server_instance |
保存先が SQL Server となる操作で使用されるサーバー名を指定します。 これは、SSIS パッケージの保存時に、ローカル以外のサーバーまたは既定以外のサーバーを識別するために使用されます。 コマンド ラインで SQL Server と関連する操作を指定せずに DESTSERVER を指定すると、エラーになります。 このオプションとの組み合わせが適しているのは、SIGN SQL、COPY SQL、または MOVE SQL オプションなどの操作を行うコマンドです。 SQL Server インスタンス名は、円記号とインスタンス名をサーバー名に追加することによって指定します。 |
||||
/DestU[ser] username |
SQL Server 認証を使用する SQL Server インスタンスへ接続するために、SIGN SQL オプション、COPY SQL オプション、MOVE SQL オプションで使用するユーザー名を指定します。 コマンド ラインで SIGN SQL オプション、COPY SQL オプション、または MOVE SQL オプションを指定せずに DESTUSER を指定すると、エラーになります。 |
||||
/Dump process ID |
(省略可)。指定したプロセス (dtexec ユーティリティまたは dtsDebugHost.exe プロセス) を一時停止し、デバッグ ダンプ ファイル (.mdmp および .tmp) を作成します。
一時停止するプロセスの process ID を見つけるには、Windows タスク マネージャーを使用します。 Integration Services の既定では、デバッグ ダンプ ファイルは <drive>:\Program Files\Microsoft SQL Server\110\Shared\ErrorDumps フォルダーに格納されます。 dtexec ユーティリティおよび dtsDebugHost.exe プロセスの詳細については、「dtexec ユーティリティ」および「カスタム オブジェクトのビルド、配置、およびデバッグ」を参照してください。 デバッグ ダンプ ファイルの詳細については、「パッケージ実行用のダンプ ファイルを生成する」を参照してください。
|
||||
/DT[S] filespec |
実行される SSIS パッケージが SSIS パッケージ ストアに存在することを指定します。 filespec 引数には、SSIS パッケージ ストアのルートから始まるフォルダー パスを指定する必要があります。 既定では、構成ファイル内のルート フォルダーの名前は "MSDB" と "File System" です。空白を含むパスは、二重引用符で囲む必要があります。 DT[S] オプションが、次のオプションのいずれかと同じコマンド ライン上に指定された場合、DTEXEC_DTEXECERROR が返されます。
|
||||
/En[crypt] {SQL | FILE}; Path;ProtectionLevel[;password] |
(省略可)。 読み込まれたパッケージを指定された保護レベルおよびパスワードで暗号化し、それを Path で指定された場所に保存します。 パスワードが必要かどうかは、ProtectionLevel で判断されます。
ProtectionLevel オプションには以下のレベルがあります。 Level 0: 重要な情報を切り離します。 Level 1: ローカル ユーザーの資格情報を使用して重要な情報を暗号化します。 Level 2: 必要なパスワードを使用して重要な情報を暗号化します。 Level 3: 必要なパスワードを使用してパッケージを暗号化します。 Level 4: ローカル ユーザーの資格情報を使用してパッケージを暗号化します。 Level 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] |
(省略可)。 FolderName で指定された名前のフォルダーを SQL Server または SSIS から削除します。 削除するフォルダーの場所は、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 が返されます。
|
||||
/FR[ename] {SQL |DTS} [;ParentFolderPath; OldFolderName;NewFolderName] |
(省略可)。 SSIS 上または SQL Server 上にあるフォルダーの名前を変更します。 ParentFolderPath は、名前を変更するフォルダーの場所です。 OldFolderName はフォルダーの現在の名前で、NewFolderName はそのフォルダーに付ける新しい名前です。 |
||||
/H[elp] option |
dtutil の各オプションとその使用方法を詳細に説明するヘルプ テキストを表示します。 このオプションの引数は省略可能です。 引数が含まれている場合、ヘルプ テキストには、指定されたオプションに関する詳細情報が表示されます。 次の例では、すべてのオプションに関するヘルプが表示されます。 dtutil /H 次の 2 つの例では、/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 操作を指定します。 この操作には、2 つの引数をセミコロンで区切って指定する必要があります。
MOVE 操作で移動先に既存のパッケージが見つかった場合、dtutil によって、パッケージの上書きを確認するプロンプトが表示されます。 パッケージを上書きする場合は Y、プログラムを終了する場合は N と応答します。 コマンドに QUIET オプションが含まれている場合は、プロンプトは表示されず、既存のパッケージはすべて上書きされます。 |
||||
/Q[uiet] |
COPY オプション、MOVE オプション、または SIGN オプションを含むコマンドの実行時に示される確認プロンプトが表示されないようにします。 この確認プロンプトは、指定されたパッケージと同じ名前のパッケージが対象となるコンピューターに既に存在する場合や、指定されたパッケージが既に署名されている場合に表示されます。 |
||||
/R[emark] text |
コメントをコマンド ラインに追加します。 コメントの引数は省略可能です。 コメント テキストが空白を含む場合、テキストを引用符で囲む必要があります。 1 行のコマンド ラインに複数の REM オプションを含めることができます。 |
||||
/Si[gn] {SQL | File | DTS}; path; hash |
SSIS パッケージに署名します。 この操作には、3 つの引数をセミコロンで区切って指定する必要があります。
詳細については、「デジタル署名を使用してパッケージのソースを特定する」を参照してください。
|
||||
/SourceP[assword] password |
SQL Server 認証を使用する SQL Server インスタンスのデータベースに格納されている SSIS パッケージを取得できるように、SQL オプションおよび SOURCEUSER オプションで使用されるパスワードを指定します。 コマンド ラインで SOURCEUSER オプションを指定せずに SOURCEPASSWORD を指定すると、エラーになります。
|
||||
/SourceS[erver] server_instance |
SQL Server に格納されている SSIS パッケージを取得できるように、SQL オプションで使用されるサーバー名を指定します。 コマンド ラインで SIGN SQL オプション、COPY SQL オプション、または MOVE SQL オプションを指定せずに SOURCESERVER を指定すると、エラーになります。 SQL Server インスタンス名は、円記号とインスタンス名をサーバー名に追加することによって指定します。 |
||||
/SourceU[ser] username |
SQL Server 認証を使用する SQL Server に格納されている SSIS パッケージを取得できるように、SOURCESERVER オプションで使用されるユーザー名を指定します。 コマンド ラインで SIGN SQL オプション、COPY SQL オプション、または MOVE SQL オプションを指定せずに SOURCEUSER を指定すると、エラーになります。
|
||||
/SQ[L] package_path |
SSIS パッケージの場所を指定します。 このオプションは、パッケージが msdb データベースに格納されることを示します。 package_path 引数には、SSIS パッケージのパスと名前を指定します。 フォルダー名の最後には円記号を入力します。 SQL オプションが、次のオプションのいずれかと同じコマンド ライン上に指定された場合、DTEXEC_DTEXECERROR が返されます。
SOURCEUSERNAME が含まれていない場合、パッケージへのアクセスに Windows 認証が使用されます。 SOURCEPASSWORD は SOURCEUSER が存在する場合のみ使用できます。 SOURCEPASSWORD が含まれていない場合、空白のパスワードが使用されます。
|
dtutil 終了コード
構文エラーの検出、不適切な引数の使用、オプションの無効な組み合わせの指定などがあった場合、dtutil は警告を表示して終了コードを設定します。 それ以外の場合は、"操作は正常に完了しました" というメッセージが表示されます。次の表は、終了時に dtutil ユーティリティが設定できる値を示しています。
値 |
説明 |
---|---|
0 |
ユーティリティが正常に実行されました。 |
1 |
ユーティリティが失敗しました。 |
4 |
ユーティリティは要求されたパッケージを見つけることができません。 |
5 |
ユーティリティは要求されたパッケージを読み込むことができません。 |
6 |
コマンド ラインに構文エラーまたはセマンティック エラーのいずれかが含まれているため、ユーティリティはコマンド ラインを解決できません。 |
説明
dtutil でコマンド ファイルやリダイレクトを使用することはできません。
コマンド ライン内でのオプションの順序は重要ではありません。
使用例
次の例では、コマンド ラインの使用に関する一般的なシナリオについて説明します。
コピーの例
Windows 認証を使用する SQL Server のローカル インスタンス上に 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 認証の使用が想定されています。
コピー後にパッケージ用の新しい ID を作成するには、次の構文を使用します。
dtutil /I /FILE copiedpkg.dtsx
特定のフォルダーにあるすべてのパッケージの新しい ID を作成するには、次の構文を使用します。
for %%f in (C:\test\SSISPackages\*.dtsx) do dtutil.exe /I /FILE %%f
コマンド プロンプトでコマンドを入力するときは、パーセント記号を 1 つ (%) 使用します。 バッチ ファイル内でコマンドを使用するときは、パーセント記号を 2 つ (%%) 使用します。
削除の例
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 プロパティはハッシュ値として使用されます。このとき、スペースは削除されます。
注 |
---|
上の例で使用しているハッシュは実際のハッシュではありません。 |
詳細については、「Signing and Checking Code with Authenticode」(Authenticode を使用したコードの署名と検証) の「CertMgr」を参照してください。
暗号化の例
次の例では、完全パッケージ暗号化とパスワードを使用してファイルベースの PackageToEncrypt.dtsx を暗号化し、ファイルベースの EncryptedPackage.dts として保存します。 暗号化に使用されるパスワードは、EncPswd です。
dtutil /FILE PackageToEncrypt.dtsx /ENCRYPT file;EncryptedPackage.dtsx;3;EncPswd