Программа dtutil

Изменения: 17 июля 2006 г.

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

ms162820.note(ru-ru,SQL.90).gifПримечание.
На 64-разрядном компьютере службы Integration Services устанавливают и 32-разрядную, и 64-разрядную версии программы dtutil (dtexec.exe).
ms162820.note(ru-ru,SQL.90).gifПримечание.
Многие операции, выполняемые программой dtutil, можно также выполнять визуально в среде SQL Server Management Studio при подключении к экземпляру служб Integration Services. Дополнительные сведения см. в разделе Управление пакетами служб Integration Services.

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

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

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

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

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

Синтаксис

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, возникнет ошибка.

ms162820.note(ru-ru,SQL.90).gifПримечание.

При возможности используйте проверку подлинности Windows.

/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, является ошибкой.

/DT[S] filespec

Этот параметр указывает, что пакет SSIS, с которым производятся действия, расположен в хранилище пакетов служб SSIS. Аргумент filespec является относительным путем, который начинается с корневой папки хранилища пакетов служб SSIS.

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

  • FILE
  • SQL
  • SOURCEUSER
  • SOURCEPASSWORD
  • SOURCESERVER

/En[crypt] {SQL | FILE}; Path;ProtectionLevel[;password]

(Необязательно) Шифрует загруженный пакет с указанным уровнем защиты и паролем и сохраняет его в место, указанное в параметре Path. Параметр ProtectionLevel определяет, необходим ли пароль.

  • SQL — параметр Path является именем целевого пакета.
  • FILE — параметр Path является полным именем файла для пакета.
  • 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] 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. В этой операции используются два аргумента, разделенные точкой с запятой:

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

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

/Q[uiet]

Останавливает запросы подтверждения, которые могут появиться при выполнении команды, содержащей параметры COPY, MOVE или SIGN. Эти запросы появляются, если пакет с именем, совпадающим с именем указанного пакета, уже существует на компьютере адресата или если указанный пакет уже подписан.

/R[emark] text

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

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

Подписывает пакет служб SSIS. В этой операции используются три обязательных аргумента, разделенные точками с запятой:

  • Аргумент назначения может задавать SQL, FILE или DTS. Назначение SQL может включать параметры DESTUSER, DESTPASSWORD и DESTSERVER.
  • Аргумент path указывает местоположение пакета, над которым будет произведена операция.
  • Аргумент hash указывает идентификатор сертификата в виде шестнадцатеричной строки переменной длины.

Сведения о сертификате пользователя можно получить с помощью программы CertMgr. Дополнительные сведения см. в разделе по программе CertMgr статьи по подписыванию и проверке кода при помощи технологии Authenticode в библиотеке MSDN.

/SourceP[assword] password

Указывает пароль, который используется вместе с параметрами SQL и SOURCEUSER, чтобы обеспечить получение пакета служб SSIS, сохраненного в базе данных экземпляра SQL Server, где используется проверка подлинности SQL Server. Указание параметра SOURCEPASSWORD в командной строке, в которой отсутствует параметр SOURCEUSER, является ошибкой.

ms162820.note(ru-ru,SQL.90).gifПримечание.

При возможности используйте проверку подлинности Windows.

/SourceS[erver] server_instance

Указывает имя сервера, которое используется с параметром SQL, чтобы обеспечить получение пакета служб SSIS, сохраненного в SQL Server. Ввод SOURCESERVER в командной строке, в которой отсутствует параметр SIGN SQL, COPYSQL или MOVESQL, является ошибкой.

Имя экземпляра SQL Server можно указать, добавив обратную косую черту и имя экземпляра к имени сервера.

/SourceU[ser] username

Указывает имя пользователя, которое используется вместе с параметром SOURCESERVER, чтобы обеспечить получение пакета служб SSIS, сохраненного в SQL Server, где используется проверка подлинности SQL Server. Указание SOURCEUSER в командной строке, в которой отсутствует параметр SIGN SQL, COPY SQL или MOVE SQL, является ошибкой.

ms162820.note(ru-ru,SQL.90).gifПримечание.

При возможности используйте проверку подлинности Windows.

/SQ[L] package_path

Указывает местоположение пакета служб SSIS. Этот параметр указывает, что пакет сохранен в базе данных msdb. Аргумент package_path указывает путь и имя пакета служб SSIS. Название каждой папки заканчивается обратной косой чертой.

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

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

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

ms162820.note(ru-ru,SQL.90).gifВажно!

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

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

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

Значение Описание

0

Программа выполнена успешно.

1

Программа завершилась с ошибкой.

4

Программе не удалось найти запрошенный пакет.

5

Программе не удалось загрузить запрошенный пакет

6

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

Замечания

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

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

Примеры

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

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

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

dtutil /SQL srcPackage /COPY DTS;destPackage 

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

dtutil /FILE c:\myPackages\mypackage.dtsx /COPY FILE;c:\myTestPackages\mynewpackage.dtsx

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

dtutil / FILE c:\sourcepkg.dtsx / 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
ms162820.note(ru-ru,SQL.90).gifПримечание.
Чтобы удалить пакет с именованного сервера, добавьте параметр 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
ms162820.note(ru-ru,SQL.90).gifПримечание.
Чтобы определить, существует ли пакет на именованном сервере, добавьте параметр 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
ms162820.note(ru-ru,SQL.90).gifПримечание.
Чтобы переместить пакет с одного именованного сервера на другой, добавьте параметры 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 используется в качестве хэш-значения, пробелы удаляются.

ms162820.note(ru-ru,SQL.90).gifПримечание.
Хэш в предыдущем примере не является реальным.

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

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

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

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

См. также

Другие ресурсы

Как запустить пакет в среде Business Intelligence Development Studio
Использование служб Integration Services на 64-разрядных компьютерах

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

17 июля 2006 г.

Измененное содержимое
  • Исправлено имя и параметры SOURCESERVER.
  • Отмечена возможность выполнения задач программы dtutil в среде SQL Server Management Studio.

5 декабря 2005 г.

Измененное содержимое
  • Добавлено описание процедуры подписи образца пакета.
  • Добавлен пример процедуры шифрования пакета.
  • Расширено описание процедуры использования режимов копирования и перемещения.