Программа dtutil (средства служб SSIS)

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

ПримечаниеПримечание

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

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

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

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

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

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

Рекомендации по установке средств служб SSIS на 64-разрядные компьютеры

На 64-разрядном компьютере службы Integration Services устанавливают 64-разрядные версии программ dtexec (dtexec.exe) и dtutil (dtutil.exe). Чтобы установить 32-разрядные версии этих средств служб Integration Services, при установке необходимо выбрать либо клиентские средства, либо среду Business Intelligence Development Studio.

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

ПримечаниеПримечание

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

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

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

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

  • Окончательно измените порядок путей в переменной среды 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 для подключения к целевому экземпляру SQL Server с помощью проверки подлинности SQL Server. Если DESTPASSWORD указан в командной строке, где отсутствует параметр DTSUSER, возникнет ошибка.

ПримечаниеПримечание
По возможности используйте проверку подлинности 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, является ошибкой.

/Dump process ID

Приостанавливает указанный процесс (либо программу dtexec, либо процесс dtsDebugHost.exe) и создает отладочные файлы дампа с расширениями MDMP и TMP (необязательный).

ПримечаниеПримечание
Чтобы использовать параметр /Dump, пользователю должно быть назначено право «Отладка программ» (SeDebugPrivilege).

Найти значение параметра process ID для приостанавливаемого процесса можно с помощью диспетчера задач Windows.

По умолчанию службы Integration Services хранят отладочные файлы дампа в папке <диск>:\Program Files\Microsoft SQL Server\100\Shared\ErrorDumps.

Дополнительные сведения о программе dtexec и процессе dtsDebugHost.exe см. в разделах Программа dtexec (средства служб SSIS) и Построение, развертывание и отладка пользовательских объектов.

Дополнительные сведения об отладочных файлах дампа см. в разделе Работа с файлами дампа отладки.

ПримечаниеПримечание
Отладочные файла дампа могут содержать конфиденциальные сведения. Ограничьте доступ к этим файлам с помощью списка управления доступом (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:

Уровень 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 указывает идентификатор сертификата в виде шестнадцатеричной строки переменной длины.

Дополнительные сведения см. в разделе Использование цифровых подписей с пакетами.

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

/SourceP[assword] password

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

ПримечаниеПримечание
По возможности используйте проверку подлинности 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, является ошибкой.

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

/SQ[L] package_path

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

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

  • DTS

  • FILE

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

  • SOURCEUSER

  • SOURCEPASSWORD

  • SOURCESERVER

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

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

dtutil (средства служб SSIS): коды завершения

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

Значение

Описание

0

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

1

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

4

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

5

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

6

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

Замечания

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

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

dtutil (средства служб SSIS): Примеры

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

dtutil (средства служб SSIS): Примеры копирования

Чтобы скопировать пакет, хранящийся в базе данных 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

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

dtutil (средства служб SSIS): Примеры удаления

Чтобы удалить пакет, хранящийся в базе данных 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

dtutil (средства служб SSIS): Примеры определения существования

Чтобы определить, существует ли пакет в базе данных 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

dtutil (средства служб SSIS): Примеры перемещения

Чтобы переместить пакет из хранилища пакетов служб 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

dtutil (средства служб SSIS): Примеры подписи

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

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

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

ПримечаниеПримечание

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

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

dtutil (средства служб SSIS): Примеры шифрования

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

dtutil /FILE PackageToEncrypt.dtsx /ENCRYPT file;EncryptedPackage.dtsx;3;EncPswd
Значок служб Integration Services (маленький) Оставайтесь в курсе новых возможностей служб Integration Services

Чтобы получить новейшую документацию, статьи, образцы и видеоматериалы корпорации Майкрософт, а также лучшие решения участников сообщества, посетите страницу служб Integration Services на сайте MSDN:


Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.