Программа dtutil
Программа командной строки dtutil предназначена для управления пакетами служб SQL Server Службы Integration Services. Программа может копировать, перемещать, удалять пакет или проверять его существование. Эти действия могут быть выполнены с любым пакетом служб Службы SSIS, сохраненным в одном из трех расположений: база данных Microsoft SQL Server, хранилище пакетов служб Службы SSIS и файловая система. Если программа имеет доступ к пакету, хранимому в msdb, в командной строке может быть необходимо ввести имя пользователя и пароль. Если экземпляр SQL Server использует проверку подлинности SQL Server, в командной строке необходимо ввести и имя пользователя, и пароль. Если имя пользователя отсутствует, dtutil попытается войти в SQL Server, используя проверку подлинности Windows. Тип хранилища пакета определяется параметрами /SQL, /FILE и /DTS.
Программа командной строки dtutil не поддерживает использование командных файлов или перенаправления.
Программа командной строки dtutil включает в себя следующие функциональные возможности.
Подсказки в командной строке, которые обеспечивают самодокументируемость и облегчают работу с командной строкой.
Защита от перезаписи – выводится запрос подтверждения, перед тем как перезаписать существующий пакет при копировании и удалении пакетов.
Справка консоли для предоставления сведений о параметрах командной строки для dtutil.
![]() |
---|
Многие операции, выполняемые программой dtutil, можно также выполнять визуально в среде Среда SQL Server Management Studio при подключении к экземпляру служб Службы Integration Services. Дополнительные сведения см. в разделе Управление пакетами (службы SSIS). |
Параметры можно вводить в любом порядке. Символ «|» является оператором 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\110\DTS\Binn», а путь к каталогу 64-разрядной версии — «<drive>:\Program Files\Microsoft SQL Server\110\DTS\Binn».)
![]() |
---|
Если для запуска программы используется агент SQL Server, то он автоматически использует 64-разрядную версию программы. Чтобы определить точное расположение исполняемого файла программы, агент SQL Server использует реестр, а не переменную среды PATH. |
Чтобы убедиться, что в командной строке запущена 64-разрядная версия программы, выполните одно из следующих действий.
Откройте окно командной строки, измените путь к каталогу, содержащему 64-разрядную версию программы (<drive>:\Program Files\Microsoft SQL Server\110\DTS\Binn»), а затем запустите программу из указанного местоположения.
В командной строке запустите программу, введя полный путь («<drive>:\Program Files\Microsoft SQL Server\110\DTS\Binn») к 64-разрядной версии программы.
Окончательно измените порядок путей в переменной среды 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 для подключения к целевому экземпляру SQL Server с помощью проверки подлинности SQL Server. Если DESTPASSWORD указан в командной строке, где отсутствует параметр DTSUSER, возникнет ошибка.
|
||||
/DestS[erver] server_instance |
Указывает имя сервера, используемое в любой операции, при выполнении которой назначение сохраняется в SQL Server. Этот параметр используется для определения удаленного или именованного сервера при сохранении пакета служб Службы SSIS. Указание DESTSERVER в командной строке, в которой отсутствует действие, связанное с SQL Server, является ошибкой. Для совместного использования с этим параметром подходят команды 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 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: Уровень 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:
|
||||
/FR[ename] {SQL | DTS} [;ParentFolderPath; OldFolderName;NewFolderName] |
(Необязательно) Переименовывает папку на службах Службы SSIS или SQL Server. ParentFolderPath — местоположение папки для переименования. Параметр OldFolderName представляет текущее имя папки, а NewFolderName — новое имя, назначаемое ей. |
||||
/H[elp] option |
Отображает подробную текстовую справку, которая иллюстрирует параметры dtutil и описывает их использование. Аргумент параметра является необязательным. Если указан этот аргумент, текст справки будет содержать подробные сведения об указанном параметре. В следующем примере отображается справка по всем параметрам: 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. В этой операции используются два аргумента, разделенные точкой с запятой:
Если операция MOVE обнаруживает существующий пакет в месте назначения, программа dtutil запрашивает у пользователя подтверждение перезаписи пакета. Ответ Y приводит к перезаписи пакета, а ответ N — к завершению программы. Если команда содержит параметр QUIET, никаких запросов не появится, а любой существующий пакет будет перезаписан. |
||||
/Q[uiet] |
Останавливает запросы подтверждения, которые могут появиться при выполнении команды, содержащей параметры COPY, MOVE или SIGN. Эти запросы появляются, если пакет с именем, совпадающим с именем указанного пакета, уже существует на компьютере адресата или если указанный пакет уже подписан. |
||||
/R[emark] text |
Добавляет примечания к командной строке. Аргумент примечания является необязательным. Если текст примечания содержит символы пробела, он должен быть заключен в кавычки. В командную строку можно включить несколько параметров REM. |
||||
/Si[gn] {SQL | File | DTS}; path; hash |
Подписывает пакет служб Службы SSIS. В этой операции используются три обязательных аргумента, разделенные точками с запятой:
Дополнительные сведения см. в разделе Определение источника пакетов с помощью цифровых подписей.
|
||||
/SourceP[assword] password |
Указывает пароль, который используется вместе с параметрами SQL и SOURCEUSER, чтобы обеспечить получение пакета служб Службы SSIS, сохраненного в базе данных экземпляра SQL Server, где используется проверка подлинности SQL Server. Указание параметра SOURCEPASSWORD в командной строке, в которой отсутствует параметр SOURCEUSER, является ошибкой.
|
||||
/SourceS[erver] server_instance |
Указывает имя сервера, которое используется с параметром SQL, чтобы обеспечить получение пакета служб Службы SSIS, сохраненного в SQL Server. Ввод SOURCESERVER в командной строке, в которой отсутствует параметр SIGN SQL, COPY SQL или MOVE SQL, является ошибкой. Имя экземпляра SQL Server можно указать, добавив обратную косую черту и имя экземпляра к имени сервера. |
||||
/SourceU[ser] username |
Указывает имя пользователя, которое используется вместе с параметром SOURCESERVER, чтобы обеспечить получение пакета служб Службы SSIS, сохраненного в SQL Server, где используется проверка подлинности SQL Server. Указание SOURCEUSER в командной строке, в которой отсутствует параметр SIGN SQL, COPY SQL или MOVE SQL, является ошибкой.
|
||||
/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 нельзя использовать командные файлы или перенаправление.
Порядок параметров в пределах командной строки не имеет значения.
Примеры
В следующих примерах приведены типичные сценарии использования командной строки.
Примеры копирования
Чтобы скопировать пакет, хранящийся в базе данных 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