Программа dtutil

Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure

Программа командной строки 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-разрядной версии выглядит следующим образом: <диск>:\Program Files(x86)\Microsoft SQL Server\130\DTS\Binn, а путь к каталогу 64-разрядной версии — <диск>:\Program Files\Microsoft SQL Server\130\DTS\Binn.)

Примечание.

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

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

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

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

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

Синтаксис

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

Параметры

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

Если операция Copy обнаруживает существующий пакет в месте назначения, программа dtutil запрашивает у пользователя подтверждение удаления пакета. Ответ Y приводит к перезаписи пакета, а ответ N — к завершению программы. Если команда содержит аргумент Quiet , никаких запросов не появится, а любой существующий пакет будет перезаписан.
/Dec[rypt] пароль (Необязательно). Задает пароль для расшифровки, используемый при загрузке пакета с шифрованием пароля.
/Del[ete] Удаляет пакет, указанный параметром 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\130\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}; 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 или из служб Integration Services папку с именем, указанным в параметре FolderName. Местоположение удаляемой папки указывается параметром ParentFolderPath.
/FDi[rectory] {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[emark] text Добавляет примечания к командной строке. Аргумент примечания является необязательным. Если текст примечания содержит символы пробела, он должен быть заключен в кавычки. В командную строку можно включить несколько параметров REM.
/Si[gn] {SQL | File | DTS}; path; hash Подписывает пакет Integration Services. В этой операции используются три обязательных аргумента, разделенные точками с запятой: destination (место назначения), path (путь) и hash (хэш).

Аргумент назначения может задавать 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, чтобы обеспечить получение пакета служб Integration Services, сохраненного в SQL Server. Указание SOURCESERVER в командной строке, в которой отсутствует параметр SIGN SQL, COPY SQL или MOVE SQL, является ошибкой.

Имя экземпляра 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

FILE

Параметр 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  

См. также

Запуск пакетов служб Integration Services (SSIS)