Служебная программа dtutil

Область применения:SQL Server среда выполнения интеграции SSIS в Фабрика данных 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, во время установки необходимо выбрать либо Client Tools, либо 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] местонахождение;путьНазначенияиИмяПакета Указывает действие копирования для пакета SSIS. Для использования этого параметра следует сначала указать расположение пакета с помощью параметра /FI, /SQили /DT . Затем укажите расположение назначения и имя пакета назначения. Аргумент destinationPathandPackageName указывает, куда копируется пакет SSIS. Если местом назначения location является SQL, в команде должны также быть указаны аргументы DestUser, 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. Он используется для указания нелокального сервера или сервера, не используемого по умолчанию, при сохранении пакета SSIS. Указание 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 должен содержать путь к папке, начиная с корневой папки хранилища пакетов SSIS. По умолчанию имена корневых папок в файле конфигурации — "MSDB" и "File System". Пути, которые содержат пробел, должны быть разделены двойными кавычками.

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

ФАЙЛ

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 или служб SSIS папку, указанную именем в FolderName. Местоположение удаляемой папки указывается параметром ParentFolderPath.
/FDi[директория] {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] параметр Отображает подробную текстовую справку, которая иллюстрирует параметры dtutil и описывает их использование. Аргумент option необязателен. Если указан этот аргумент, текст справки будет содержать подробные сведения об указанном параметре. В следующем примере показана справка по всем параметрам:

dtutil /H

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

dtutil /Help Quiet

dtutil /H Q
/I[DRegenerate] Создает новый GUID для пакета и обновляет свойство ID пакета. Когда пакет копируется, идентификатор пакета остается прежним. Поэтому файлы журналов содержат одинаковый идентификатор 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[емарка] текст Добавляет примечания к командной строке. Аргумент примечания является необязательным. Если текст примечания содержит символы пробела, он должен быть заключен в кавычки. В командную строку можно включить несколько параметров REM.
/Si[gn] {SQL | File | DTS}; путь; хеш Подписывает пакет SSIS. В этой операции используются три обязательных аргумента, разделенные точками с запятой: destination (место назначения), path (путь) и hash (хэш).

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

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

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

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



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

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

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

Примечание. По возможности используйте аутентификацию Windows.
/SQ[L] путь_к_пакету Указывает расположение пакета SSIS. Этот параметр указывает, что пакет сохранен в базе данных msdb . Аргумент package_path задает путь и имя пакета SSIS. Название каждой папки заканчивается обратной косой чертой.

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

DTS

ФАЙЛ

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

Примеры использования оператора EXISTS

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