Программа dtutil
Программа командной строки 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-разрядный путь к каталогу — <drive>:\Program Files(x86)\Microsoft SQL Server\120\DTS\Binn, а путь к 64-разрядному каталогу — <диск>:\Program Files\Microsoft SQL Server\120\DTS\Binn.)
Примечание.
Если для запуска программы используется агент SQL Server, то он автоматически использует 64-разрядную версию программы. Чтобы определить точное расположение исполняемого файла программы, агент SQL Server использует реестр, а не переменную среды PATH.
Чтобы убедиться, что в командной строке запущена 64-разрядная версия программы, выполните одно из следующих действий.
Откройте окно командной строки, перейдите в каталог, содержащий 64-разрядную версию программы (<диск>:\Program Files\Microsoft SQL Server\120\DTS\Binn), а затем запустите программу из этого расположения.
В командной строке запустите программу, введя полный путь (<диск>:\Program Files\Microsoft SQL Server\120\DTS\Binn) в 64-разрядную версию программы.
Окончательно измените порядок путей в переменной среды PATH, разместив 64-разрядный путь (<диск>:\Program Files\Microsoft SQL Server\120\DTS\Binn) перед 32-разрядным путем (<диск>:\ Program Files(x86)\Microsoft SQL Server\120\DTS\Binn) в переменной.
Синтаксис
dtutil /option [value] [/option [value]]...
Параметры
Вариант | Описание |
---|---|
/? | Отображает параметры командной строки. |
/C[opy] location;destinationPathandPackageName | Указывает операцию копирования для пакета служб Integration Services. Для использования этого параметра следует сначала указать расположение пакета с помощью параметра /FI, /SQили /DT . Затем нужно указать место назначения и имя целевого пакета. Аргумент destinationPathandPackageName указывает, куда будет скопирован пакет служб Integration Services. Если расположение назначения равно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\120\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. В этой операции используются три обязательных аргумента, разделенные точками с запятой: Аргумент назначения может задавать 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 параметром для включения извлечения пакета служб SSIS, хранящегося в 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. Параметр 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