Программа dtutil
Программа командной строки dtutil предназначена для управления пакетами служб SQL ServerIntegration Services. Программа может копировать, перемещать, удалять пакет или проверять его существование. Эти действия могут быть выполнены с любым пакетом служб SSIS, сохраненным в одном из трех расположений: база данных MicrosoftSQL Server, хранилище пакетов служб SSIS и файловая система. Тип хранилища пакета определяется параметрами /SQL, /FILE и /DTS.
Примечание |
---|
Многие операции, выполняемые программой dtutil, можно также выполнять визуально в среде SQL Server Management Studio при подключении к экземпляру служб Integration Services. Дополнительные сведения см. в разделе Управление пакетами. |
Параметры можно вводить в любом порядке. Символ «|» является оператором OR и используется для отображения возможных значений. Необходимо использовать один из параметров, разделенных каналом OR.
Все параметры должны начинаться со знака косой черты (/) или знака минуса (-). Но не включайте пробел между знаком косой черты или знаком минуса и текстом для параметра; в противном случае команда будет завершена с ошибкой.
Аргументы должны быть строками, заключенными в кавычки, или не содержать пробелов.
Двойные кавычки в пределах строк, заключенных в кавычки, преобразуются в одиночные кавычки.
Для параметров и аргументов, кроме паролей, регистр символов не учитывается.
Вопросы установки на 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 и Построение, развертывание и отладка пользовательских объектов. Дополнительные сведения об отладочных файлах дампа см. в разделе Работа с файлами дампа отладки.
Примечание
Отладочные файла дампа могут содержать конфиденциальные сведения. Ограничьте доступ к этим файлам с помощью списка управления доступом (ACL) или скопируйте в папку с ограниченным доступом.
|
/DT[S] filespec |
Указывает, что пакет служб SSIS, с которым предполагается работать, находится в хранилище пакетов служб SSIS. Аргумент filespec должен включать путь к папке, начиная от корневой папки хранилища пакетов служб SSIS. По умолчанию в файле конфигурации существуют следующие имена корневых папок: «MSDB» и «File System». Пути, содержащие символ пробела, должны быть заключены в двойные кавычки. Если параметр DT[S] указан одновременно с любым из следующих параметров, будет возвращена ошибка DTEXEC_DTEXECERROR:
|
/En[crypt] {SQL | FILE}; Path;ProtectionLevel[;password] |
(Необязательно) Шифрует загруженный пакет с указанным уровнем защиты и паролем и сохраняет его в место, указанное в параметре Path. Параметр ProtectionLevel определяет, необходим ли пароль.
Параметры 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:
|
/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. В этой операции используются два аргумента, разделенные точкой с запятой:
Если операция MOVE обнаруживает существующий пакет в месте назначения, программа dtutil запрашивает у пользователя подтверждение перезаписи пакета. Ответ Y приводит к перезаписи пакета, а ответ N — к завершению программы. Если команда содержит параметр QUIET, никаких запросов не появится, а любой существующий пакет будет перезаписан. |
/Q[uiet] |
Останавливает запросы подтверждения, которые могут появиться при выполнении команды, содержащей параметры COPY, MOVE или SIGN. Эти запросы появляются, если пакет с именем, совпадающим с именем указанного пакета, уже существует на компьютере адресата или если указанный пакет уже подписан. |
/R[emark] text |
Добавляет примечания к командной строке. Аргумент примечания является необязательным. Если текст примечания содержит символы пробела, он должен быть заключен в кавычки. В командную строку можно включить несколько параметров REM. |
/Si[gn] {SQL | File | DTS}; path; hash |
Подписывает пакет служб SSIS. В этой операции используются три обязательных аргумента, разделенные точками с запятой:
Дополнительные сведения см. в разделе Использование цифровых подписей с пакетами.
Важно!
Если конфигурация предусматривает проверку подписи пакета, службы 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:
Если параметр 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