dtutil ユーティリティ

dtutil コマンド プロンプト ユーティリティは、SQL ServerIntegration Services パッケージの管理に使用します。このユーティリティを使用して、パッケージのコピー、移動、削除を行ったり、パッケージの存在を確認することができます。これらの操作は SSIS パッケージ上で実行できます。このパッケージは、MicrosoftSQL Server データベース、SSIS パッケージ ストア、およびファイル システムの 3 つの場所のいずれかに格納されます。パッケージのストレージ型は /SQL、/FILE、および /DTS オプションで指定します。

注意注意

Integration Services のインスタンスに接続している場合、dtutil によって実行される操作の多くは、SQL Server Management Studio で確認しながら実行することもできます。詳細については、「パッケージの管理」を参照してください。

オプションを入力する順序は任意です。パイプ (|) 文字は OR 演算子を表し、利用可能な値を示すために使用されます。OR パイプで区切られたオプションのうちの 1 つを使用する必要があります。

すべてのオプションは、スラッシュ (/) またはマイナス記号 (-) で始まる必要があります。ただし、オプションのテキストとスラッシュ (/) またはマイナス記号 (-) の間に空白を入れないでください。空白を入れると、コマンドの実行が失敗します。

引数は、引用符で囲むか、空白を含まない文字列を指定する必要があります。

引用符で囲まれた文字列内に二重引用符がある場合は、単一引用符がエスケープされていることを表します。

パスワードを除いて、オプションおよび引数では大文字と小文字が区別されません。

64 ビット コンピュータでのインストールに関する注意点

64 ビット コンピュータには、Integration Services によって 64 ビット版の dtexec ユーティリティ (dtexec.exe) および dtutil ユーティリティ (dtutil.exe) がインストールされます。32 ビット版のこれらの Integration Services ツールをインストールするには、セットアップ中に [クライアント ツール] または [Business Intelligence Development Studio] を選択する必要があります。

既定では、64 ビットと 32 ビットの両方のバージョンの Integration Services コマンド プロンプト ユーティリティがインストールされている 64 ビット コンピュータでは、コマンド プロンプトで 32 ビット バージョンが実行されます。これは、PATH 環境変数で、32 ビット バージョンのディレクトリ パスが 64 ビット バージョンのディレクトリ パスより前に配置されているためです (通常、32 ビットのディレクトリ パスは <ドライブ>:\Program Files(x86)\Microsoft SQL Server\100\DTS\Binn で、64 ビットのディレクトリ パスは <ドライブ>:\Program Files\Microsoft SQL Server\100\DTS\Binn です)。

注意注意

SQL Server エージェントを使用してユーティリティを実行する場合は、SQL Server エージェントによって 64 ビット バージョンのユーティリティが自動的に使用されます。SQL Server エージェントでは、PATH 環境変数ではなくレジストリを使用してユーティリティの適切な実行可能ファイルが特定されます。

コマンド プロンプトで 64 ビット バージョンのユーティリティが実行されるようにするには、次のいずれかの操作を実行します。

  • コマンド プロンプト ウィンドウを開いて、64 ビット バージョンのユーティリティが格納されたディレクトリ (<ドライブ>:\Program Files\Microsoft SQL Server\100\DTS\Binn) に移動し、その場所からユーティリティを実行します。

  • コマンド プロンプトで、64 ビット バージョンのユーティリティの完全なパス (<ドライブ>:\Program Files\Microsoft SQL Server\100\DTS\Binn) を入力してユーティリティを実行します。

  • PATH 環境変数で、64 ビットのパス (<ドライブ>:\Program Files\Microsoft SQL Server\100\DTS\Binn) を 32 ビットのパス (<ドライブ>:\ Program Files(x86)\Microsoft SQL Server\100\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 を指定すると、エラーが生成されます。

注意注意
可能な場合は、Windows 認証を使用します。

/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) を作成します。

注意注意
/Dump オプションを使用するには、Debug Programs ユーザー権限 (SeDebugPrivilege) が割り当てられている必要があります。

一時停止するプロセスの process ID を見つけるには、Windows タスク マネージャを使用します。

Integration Services の既定では、デバッグ ダンプ ファイルは <drive>:\Program Files\Microsoft SQL Server\100\Shared\ErrorDumps フォルダに格納されます。

dtexec ユーティリティおよび dtsDebugHost.exe プロセスの詳細については、「dtexec ユーティリティ」および「カスタム オブジェクトのビルド、配置、およびデバッグ」を参照してください。

デバッグ ダンプ ファイルの詳細については、「デバッグ ダンプ ファイルの操作」を参照してください。

注意注意
デバッグ ダンプ ファイルには機密情報が含まれている場合があります。アクセス制御リスト (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 - Path には保存先となるパッケージ名を指定します。

  • FILE - Path にはパッケージの完全修飾パスとファイル名を指定します。

  • DTS - このオプションは現在サポートされていません。

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 が返されます。

  • DTS

  • SQL

  • SOURCEUSER

  • SOURCEPASSWORD

  • SOURCESERVER

/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 つの引数をセミコロンで区切って指定する必要があります。

  • 移動先の引数には、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

コメントをコマンド ラインに追加します。コメントの引数は省略可能です。コメント テキストが空白を含む場合、テキストを引用符で囲む必要があります。1 行のコマンド ラインに複数の REM オプションを含めることができます。

/Si[gn] {SQL | File | DTS}; path; hash

SSIS パッケージに署名します。この操作には、3 つの引数をセミコロンで区切って指定する必要があります。

  • 移動先の引数には、SQL、FILE、または DTS を指定できます。SQL の移動先には、DESTUSER オプション、DESTPASSWORD オプション、および DESTSERVER オプションを含めることができます。

  • path 引数には、操作の対象となるパッケージの場所を指定します。

  • hash 引数には、さまざまな長さの 16 進数文字列で表される認証識別子を指定します。

詳細については、「パッケージでのデジタル署名の使用」を参照してください。

重要な注意事項重要
パッケージの署名を確認するように構成した場合、Integration Services によって確認されるのは、デジタル署名が存在するかどうか、有効かどうか、および信頼関係のある発行元の署名であるかどうかのみです。Integration Services では、パッケージが変更されたかどうかは確認されません。

/SourceP[assword] password

SQL Server 認証を使用する SQL Server インスタンスのデータベースに格納されている SSIS パッケージを取得できるように、SQL オプションおよび SOURCEUSER オプションで使用されるパスワードを指定します。コマンド ラインで SOURCEUSER オプションを指定せずに SOURCEPASSWORD を指定すると、エラーになります。

注意注意
可能な場合は、Windows 認証を使用します。

/SourceS[erver] server_instance

SQL Server に格納されている SSIS パッケージを取得できるように、SQL オプションで使用されるサーバー名を指定します。コマンド ラインで SIGN SQL オプション、COPYSQL オプション、または MOVESQL オプションを指定せずに SOURCESERVER を指定すると、エラーになります。

SQL Server インスタンス名は、円記号とインスタンス名をサーバー名に追加することによって指定します。

/SourceU[ser] username

SQL Server 認証を使用する SQL Server に格納されている SSIS パッケージを取得できるように、SOURCESERVER オプションで使用されるユーザー名を指定します。コマンド ラインで SIGN SQL オプション、COPY SQL オプション、または MOVE SQL オプションを指定せずに SOURCEUSER を指定すると、エラーになります。

注意注意
可能な場合は、Windows 認証を使用します。

/SQ[L] package_path

SSIS パッケージの場所を指定します。このオプションは、パッケージが msdb データベースに格納されることを示します。package_path 引数には、SSIS パッケージのパスと名前を指定します。フォルダ名の最後には円記号を入力します。

SQL オプションが、次のオプションのいずれかと同じコマンド ライン上に指定された場合、DTEXEC_DTEXECERROR が返されます。

  • DTS

  • FILE

    SQL オプションは、オプションを使用しないか、次のオプションのいずれか 1 つを使用します。

  • SOURCEUSER

  • SOURCEPASSWORD

  • SOURCESERVER

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