Программа dtutil

Программа командной строки dtutil используется для управления пакетами служб SQL Server Службы Integration Services. Программа может копировать, перемещать, удалять пакет или проверять его существование. Эти действия могут выполняться с любым из пакетов Integration Services, который хранится в любом из трех мест: база данных Microsoft SQL Server, хранилище пакетов служб Integration Services и файловая система. Если программа имеет доступ к пакету, хранимому в msdb, в командной строке может быть необходимо ввести имя пользователя и пароль. Если экземпляр SQL Server использует проверку подлинности SQL Server, в командной строке необходимо ввести и имя пользователя, и пароль. Если имя пользователя отсутствует, dtutil попытается войти на сервер SQL Server, используя проверку подлинности Windows. Тип хранилища пакета определяется параметрами /SQL, /FILE и /DTS.

Программа командной строки dtutil не поддерживает использование командных файлов или перенаправления.

Программа командной строки dtutil включает в себя следующие функциональные возможности.

  • Подсказки в командной строке, которые обеспечивают самодокументируемость и облегчают работу с командной строкой.

  • Защита от перезаписи – выводится запрос подтверждения, перед тем как перезаписать существующий пакет при копировании и удалении пакетов.

  • Справка консоли для предоставления сведений о параметрах командной строки для dtutil.

Примечание.

Многие операции, выполняемые программой dtutil, можно также выполнять визуально в среде SQL Server Management Studio при подключении к экземпляру служб Integration Services. Дополнительные сведения см. в разделе Управление пакетами (служба Integration Services).

Параметры можно вводить в любом порядке. Символ «|» является оператором OR и используется для отображения возможных значений. Необходимо использовать один из параметров, разделенных каналом OR.

Все параметры должны начинаться со знака косой черты (/) или знака минуса (-). Но не включайте пробел между знаком косой черты или знаком минуса и текстом для параметра; в противном случае команда будет завершена с ошибкой.

Аргументы должны быть строками, заключенными в кавычки, или не содержать пробелов.

Двойные кавычки в пределах строк, заключенных в кавычки, преобразуются в одиночные кавычки.

Для параметров и аргументов, кроме паролей, регистр символов не учитывается.

Вопросы установки на 64-разрядные компьютеры

На 64-разрядном компьютере службы Integration Services устанавливают 64-разрядные версии программ dtexec (dtexec.exe) и dtutil (dtutil.exe). Чтобы установить 32-разрядные версии инструментов Integration Services, во время установки необходимо выбрать клиентские средства или среду SQL Server Data Tools (SSDT).

По умолчанию 64-разрядный компьютер с 64-разрядными и 32-разрядными версиями установленной программы командной строки Служб Integration Services будет запускать 32-разрядную версию в командной строке. 32-разрядная версия запускается, потому что путь к каталогу для 32-разрядной версии появляется в переменной среды PATH перед путем к каталогу для 64-разрядной версии. (Как правило, 32-разрядный путь к каталогу — <drive>:\Program Files(x86)\Microsoft SQL Server\120\DTS\Binn, а путь к 64-разрядному каталогу — <диск>:\Program Files\Microsoft SQL Server\120\DTS\Binn.)

Примечание.

Если для запуска программы используется агент SQL Server, то он автоматически использует 64-разрядную версию программы. Чтобы определить точное расположение исполняемого файла программы, агент SQL Server использует реестр, а не переменную среды PATH.

Чтобы убедиться, что в командной строке запущена 64-разрядная версия программы, выполните одно из следующих действий.

  • Откройте окно командной строки, перейдите в каталог, содержащий 64-разрядную версию программы (<диск>:\Program Files\Microsoft SQL Server\120\DTS\Binn), а затем запустите программу из этого расположения.

  • В командной строке запустите программу, введя полный путь (<диск>:\Program Files\Microsoft SQL Server\120\DTS\Binn) в 64-разрядную версию программы.

  • Окончательно измените порядок путей в переменной среды PATH, разместив 64-разрядный путь (>:\Program Files\Microsoft SQL Server\120\DTS\Binn) перед 32-разрядным путем (<диск>:\ Program Files(x86)\Microsoft SQL Server\120\DTS\Binn) в переменной.

Синтаксис

  
dtutil /option [value] [/option [value]]...  

Параметры

Вариант Описание
/? Отображает параметры командной строки.
/C[opy] местонахождение;путьНазначенияиИмяПакета Указывает операцию копирования для пакета служб Integration Services. Для использования этого параметра следует сначала указать расположение пакета с помощью параметра /FI, /SQили /DT . Затем нужно указать место назначения и имя целевого пакета. Аргумент destinationPathandPackageName указывает, куда будет скопирован пакет служб Integration Services. Если расположение назначения равно, SQL, DestPassword и DestServer также должны быть указаны в команде.

Copy Когда действие обнаруживает существующий пакет в месте назначения, dtutil предложит пользователю подтвердить удаление пакета. Ответ Y приводит к перезаписи пакета, а ответ N — к завершению программы. Если команда содержит аргумент Quiet , никаких запросов не появится, а любой существующий пакет будет перезаписан.
/Dec[rypt] пароль (Необязательно). Задает пароль для расшифровки, используемый при загрузке пакета с шифрованием пароля.
/Удалить Удаляет пакет, указанный параметром SQL, DTS или FILE . Если программа dtutil не может удалить пакет, она завершает работу.
/DestP[assword] пароль Указывает пароль, используемый с параметром SQL для подключения к целевому экземпляру SQL Server с помощью проверки подлинности SQL Server. Если DESTPASSWORD указан в командной строке, где отсутствует параметр DTSUSER , возникнет ошибка.

Примечание. По возможности используйте проверку подлинности Windows..
/DestS[erver] экземпляр_сервера Указывает имя сервера, используемое в любой операции, при выполнении которой назначение сохраняется в SQL Server. Этот параметр используется для определения удаленного или именованного сервера при сохранении пакета служб Integration Services. Указание DESTSERVER в командной строке, в которой отсутствует действие, связанное с SQL Server, является ошибкой. Для совместного использования с этим параметром подходят команды SIGN SQL, COPY SQLи MOVE SQL .

Имя экземпляра SQL Server можно указать, добавив обратную косую черту и имя экземпляра к имени сервера.
/DestU[ser] имя пользователя Указывает имя пользователя, применяемое с параметрами 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 Указывает, что пакет служб Integration Services, с которым предполагается работать, находится в хранилище пакетов служб Integration Services. Аргумент filespec должен включать путь к папке, начиная от корневой папки хранилища пакетов служб Integration Services. По умолчанию имена корневых папок в файле конфигурации — "MSDB" и "File System". Пути, которые содержат пробел, должны быть разделены двойными кавычками.

Если параметр DT[S] указан одновременно с любым из следующих параметров, будет возвращена ошибка DTEXEC_DTEXECERROR:

FILE

SQL

SOURCEUSER

SOURCEPASSWORD

SOURCESERVER
/En[crypt] {SQL | FILE}; Путь; ProtectionLevel[; пароль] (Необязательно). Шифрует загруженный пакет с указанным уровнем защиты и паролем и сохраняет его в место, указанное в параметре Path. ProtectionLevel определяет, требуется ли пароль:
SQL — параметр Path является именем целевого пакета.
FILE — параметр Path является полным именем файла для пакета.
DTS — этот параметр в данный момент не поддерживается.

ПараметрыProtectionLevel :
Уровень 0. Удаляет конфиденциальные сведения.
Уровень 1. Конфиденциальные сведения шифруются с помощью учетных данных локального пользователя.
Уровень 2. Конфиденциальные сведения шифруются с помощью обязательного пароля.
Уровень 3. Пакет шифруется с помощью обязательного пароля.
Уровень 4. Пакет шифруется с помощью учетных данных локального пользователя.
Уровень 5. Пакет использует шифрование хранилища SQL Server.
/Сущ[ествует] (Note: This keeps the form closest to the original if a translation is desirably necessary.) (Необязательно). Используется для определения существования пакета. dtutil пытается найти пакет, указанный параметрами SQL, DTS или FILE . Если программа dtutil не может определить местонахождение указанного пакета, будет возвращена ошибка DTEXEC_DTEXECERROR.
/FC[reate] {SQL | DTS};ParentFolderPath;NewFolderName (Необязательно). Создает новую папку с именем, указанным в параметре NewFolderName. Местоположение новой папки указывается параметром ParentFolderPath.
/FDe[lete] {SQL | DTS}[;ParentFolderPath; FolderName] (Необязательно). Удаляет из SQL Server или из служб Integration Services папку с именем, указанным в параметре FolderName. Местоположение удаляемой папки указывается параметром ParentFolderPath.
/FDi[директория] {SQL | DTS};FolderPath[;S] (Необязательно). Перечисляет содержимое (папки и пакеты) в папке на службах Integration Services или SQL Server. Дополнительный параметр FolderPath указывает папку, содержимое которой нужно просмотреть. Дополнительный параметр S указывает, что нужно просмотреть список содержимого папок, вложенных в папку, указанную в параметре FolderPath.
/FE[xists] {SQL | DTS};FolderPath (Необязательно). Проверяет, существует ли указанная папка на службах Integration Services или SQL Server. Параметр FolderPath указывает путь и имя папки, которую необходимо проверить.
/Fi[le] filespec Этот параметр указывает, что пакет служб Integration Services, с которым производятся действия, расположен в файловой системе. Значение filespec может быть предоставлено как путь в формате UNC или локальный путь.

Если параметр File указан одновременно с любым из следующих параметров, будет возвращена ошибка DTEXEC_DTEXECERROR:

DTS

SQL

SOURCEUSER

SOURCEPASSWORD

SOURCESERVER
/FR[ename] {SQL | DTS} [;ParentFolderPath; OldFolderName; NewFolderName] (Необязательно). Переименовывает папку в Integration Services или SQL Server. ParentFolderPath — местоположение папки для переименования. Параметр OldFolderName представляет текущее имя папки, а NewFolderName — новое имя, назначаемое ей.
/H[elp] параметр Отображает подробную текстовую справку, которая иллюстрирует параметры dtutil и описывает их использование. Аргумент параметра является необязательным. Если указан этот аргумент, текст справки будет содержать подробные сведения об указанном параметре. В следующем примере отображается справка по всем параметрам:

dtutil /H

В следующих двух примерах показано, как использовать параметр /H для отображения расширенной справки по указанному параметру, в данном случае — по параметру /Q [uiet] :

dtutil /Help Quiet

dtutil /H Q
/I[DRegenerate] Создает новый идентификатор GUID для пакета и обновляет свойство идентификатора пакета. Когда пакет копируется, идентификатор пакета остается прежним. Поэтому файлы журналов содержат одинаковый идентификатор GUID для обоих пакетов. В этой операции создается новый идентификатор GUID для недавно скопированного пакета, чтобы отличить его от оригинала.
/M[ove] {SQL | File | DTS}; pathandname Указывает операцию перемещения для пакета служб Integration Services. Для использования этого параметра следует сначала указать расположение пакета с помощью параметра /FI, /SQили /DT . Затем укажите действие Move (переместить). В этой операции используются два аргумента, разделенные точкой с запятой:

Аргумент назначения может задавать SQL, FILEили DTS. Назначение SQL может включать параметры DESTUSER, DESTPASSWORDи DESTSERVER .

Аргумент pathandname задает расположение пакета: SQL использует путь пакета и имя пакета, FILE — путь в формате UNC или локальный путь, DTS — расположение относительно корневой папки хранилища пакетов для служб Integration Services. Если назначением является FILE или DTS, аргумент path не включает имя файла. В качестве имени файла используется имя пакета, расположенного в указанном местоположении.



MOVE Когда действие встречает существующий пакет в месте назначения, dtutil предложит подтвердить, что необходимо перезаписать пакет. Ответ Y приводит к перезаписи пакета, а ответ N — к завершению программы. Если команда содержит параметр QUIET , никаких запросов не появится, а любой существующий пакет будет перезаписан.
/Q[uiet] Останавливает запросы подтверждения, которые могут появиться при выполнении команды, содержащей параметры COPY, MOVE или SIGN. Эти запросы появляются, если пакет с именем, совпадающим с именем указанного пакета, уже существует на компьютере адресата или если указанный пакет уже подписан.
/R[емарка] текст Добавляет примечания к командной строке. Аргумент примечания является необязательным. Если текст примечания содержит символы пробела, он должен быть заключен в кавычки. В командную строку можно включить несколько параметров REM.
/Si[gn] {SQL | File | DTS}; путь; хеш Подписывает пакет Integration Services. В этой операции используются три обязательных аргумента, разделенные точками с запятой:

Аргумент назначения может задавать SQL, FILEили DTS. Назначение SQL может включать параметры DESTUSER, DESTPASSWORD и DESTSERVER .

Аргумент path указывает местоположение пакета, над которым будет произведена операция.

Аргумент hash указывает идентификатор сертификата в виде шестнадцатеричной строки переменной длины.



** Важно! Если конфигурация предусматривает проверку подписи пакета, службы Integration Services проверяют только наличие цифровой подписи, ее правильность и надежность источника. Службы Integration Services не проверяют, был ли изменен пакет.

Дополнительные сведения см. в разделе Определение источника пакетов с помощью цифровых подписей.
/SourceP[assword] пароль Указывает пароль, который используется вместе с параметрами SQL и SOURCEUSER, чтобы обеспечить получение пакета служб Integration Services, сохраненного в базе данных экземпляра SQL Server, использующему проверку подлинности SQL Server. Ошибка в указании SOURCEPASSWORD в командной строке, которая не включает SOURCEUSER этот параметр.

Примечание. По возможности используйте проверку подлинности Windows.
/SourceS[erver] экземпляр_сервера Указывает имя сервера, используемое с SQL параметром для включения извлечения пакета служб SSIS, хранящегося в SQL Server. Указание SOURCESERVER в командной строке, в которой отсутствует параметр SIGN SQL, COPYSQL или MOVESQL, является ошибкой.

Имя экземпляра SQL Server можно указать, добавив обратную косую черту и имя экземпляра к имени сервера.
/SourceU[ser] имя пользователя Указывает имя пользователя, используемое с параметрами SOURCESERVER, чтобы обеспечить получение пакета служб Integration Services, сохраненного в SQL Server, где используется проверка подлинности SQL Server. Указание SOURCEUSER в командной строке, в которой отсутствует параметр SIGN SQL, COPY SQLили MOVE SQL , является ошибкой.

Примечание. По возможности используйте проверку подлинности Windows.
/SQ[L] путь_к_пакету Указывает местоположение пакета служб Integration Services. Этот параметр указывает, что пакет сохранен в базе данных msdb . Аргумент путь_к_пакету указывает путь и имя пакета служб Integration Services. Название каждой папки заканчивается обратной косой чертой. Если параметр SQL указан одновременно с любым из следующих параметров, будет возвращена ошибка DTEXEC_DTEXECERROR:

DTS

ФАЙЛ

SQL. Параметр SQL может сопровождаться нулевым или одним экземпляром следующих параметров:
SOURCEUSER
SOURCEPASSWORD
SOURCESERVER

В случае отсутствия параметра SOURCEUSERNAME для доступа к пакету используется проверка подлинности Windows. SOURCEPASSWORD можно использовать только при наличии SOURCEUSER . Если параметр SOURCEPASSWORD не указан, используется пустой пароль.

** Важно ** Не используйте пустые пароли. Выбирайте надежные пароли.

Коды завершения программы dtutil

Если обнаружены синтаксические ошибки, указаны неправильные аргументы или недопустимые сочетания параметров, программаdtutil возвращает код завершения, который создает соответствующие предупреждения. В противном случае программа выдает сообщение "Операция успешно завершена". В следующей таблице перечислены значения, которые программа dtutil может возвращать при завершении.

значение Описание
0 Программа выполнена успешно.
1 Программа завершилась с ошибкой.
4 Программе не удалось найти запрошенный пакет.
5 Программе не удалось загрузить запрошенный пакет
6 Программе не удалось разрешить командную строку, потому что та содержит синтаксические или семантические ошибки.

Замечания

Вместе с программой dtutilнельзя использовать командные файлы или перенаправление.

Порядок параметров в пределах командной строки не имеет значения.

Примеры

В следующих примерах приведены типичные сценарии использования командной строки.

Примеры копирования

Чтобы скопировать пакет, хранящийся в базе данных msdb в локальном экземпляре SQL Server, в хранилище пакетов служб SSIS с помощью проверки подлинности Windows, используйте следующий синтаксис:

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  

При вводе команды в командной строке используйте одинарный знак процента (%). Если команда используется в пакетном файле, используйте двойной знак процента (%%).

Примеры удаления

Чтобы удалить пакет, хранящийся в базе данных msdb в экземпляре SQL Server, использующем проверку подлинности Windows, примените следующий синтаксис:

dtutil /SQL delPackage /DELETE  

Чтобы удалить пакет, хранящийся в базе данных msdb в экземпляре SQL Server, использующем проверку подлинности SQL Server, примените следующий синтаксис:

dtutil /SQL delPackage /SOURCEUSER srcUserName /SOURCEPASSWORD #8nGs*w7F /DELETE  

Примечание.

Чтобы удалить пакет с именованного сервера, добавьте параметр SOURCESERVER и его аргумент. Указать сервер можно только с помощью параметра SQL .

Чтобы удалить пакет из хранилища пакетов служб SSIS, используйте следующий синтаксис:

dtutil /DTS delPackage.dtsx /DELETE  

Чтобы удалить пакет, хранящийся в файловой системе, используйте следующий синтаксис:

dtutil /FILE c:\delPackage.dtsx /DELETE  

Примеры определения существования

Чтобы определить, существует ли пакет в базе данных msdb в локальном экземпляре SQL Server, использующем проверку подлинности Windows, примените следующий синтаксис:

dtutil /SQL srcPackage /EXISTS  

Чтобы определить, существует ли пакет в базе данных msdb в локальном экземпляре SQL Server, использующем проверку подлинности SQL Server, примените следующий синтаксис:

dtutil SQL srcPackage /SOURCEUSER srcUserName /SOURCEPASSWORD *hY$d56b /EXISTS  

Примечание.

Чтобы определить, существует ли пакет на именованном сервере, добавьте параметр SOURCESERVER и его аргумент. Указать сервер можно только с помощью параметра SQL .

Чтобы определить, существует ли пакет в локальном хранилище пакетов, используйте следующий синтаксис:

dtutil /DTS srcPackage.dtsx /EXISTS  

Чтобы определить, существует ли пакет в локальной файловой системе, используйте следующий синтаксис:

dtutil /FILE c:\srcPackage.dtsx /EXISTS  

Примеры перемещения

Чтобы переместить пакет из хранилища пакетов служб SSIS в базу данных msdb в локальном экземпляре SQL Server, использующем проверку подлинности Windows, примените следующий синтаксис:

dtutil /DTS srcPackage.dtsx /MOVE SQL;destPackage  

Чтобы переместить пакет из базы данных msdb в локальном экземпляре SQL Server, использующем проверку подлинности SQL Server, в базу данных msdb в другом локальном экземпляре SQL Server, использующем проверку подлинности SQL Server, примените следующий синтаксис:

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 локального экземпляра SQL Server, использующего проверку подлинности Windows, примените следующий синтаксис:

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

Чтобы найти сведения о сертификате, используйте CertMgr. Хэш-код можно просмотреть в программе CertMgr , выбрав нужный сертификат и щелкнув Просмотр для просмотра его свойств. Вкладка Подробнее предоставляет дополнительные сведения по сертификату. Свойство Thumbprint используется в качестве хэш-значения, пробелы удаляются.

Примечание.

Хэш в предыдущем примере не является реальным.

Дополнительные сведения см. в разделе CertMgr в Подпись и проверка кода при помощи кода подлинности.

Примеры шифрования

В следующем образце файл PackageToEncrypt.dtsx шифруется в файл EncryptedPackage.dts с помощью полного шифрования пакета с паролем. Пароль, применяемый для шифрования — EncPswd.

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

См. также

Запуск пакета с помощью SQL Server Data Tools