Compartilhar via


utilitário dtutil

O utilitário de prompt de comando dtutil é usado para gerenciar pacotes do SQL Server Integration Services. O utilitário pode copiar, mover, excluir ou verificar a existência de um pacote. Essas ações podem ser desenvolvidas em qualquer pacote do SSIS que esteja armazenado em um dos três locais: um banco de dados do SQL Server, o Armazenamento de Pacotes do SSIS e o sistema de arquivos. Se o utilitário acessar um pacote armazenado em msdb, o prompt de comando poderá exigir um nome de usuário e uma senha. Se a instância do SQL Server usar Autenticação de SQL Server, o prompt de comando solicitará um nome de usuário e uma senha. Se o nome de usuário estiver ausente, o dtutil tentará fazer logon no SQL Server usando a Autenticação do Windows. O tipo de armazenamento do pacote é identificado por /SQL, /FILE e pelas opções /DTS.

O utilitário do prompt de comando dtutil não aceita o uso de arquivos de comando ou redirecionamento.

O utilitário do prompt de comando dtutil inclui os seguintes recursos:

  • Comentários no prompt de comando, que tornam a ação do prompt de comando autodocumentada e mais fácil de compreender.

  • Proteção contra substituição, para solicitar uma confirmação antes de substituir um pacote existente quando você estiver copiando ou movendo pacotes.

  • Ajuda de console, para fornecer informações sobre as opções de comando para dtutil.

Observação

Muitas das operações executadas pelo dtutil também podem ser executadas visualmente no SQL Server Management Studio quando você está conectado a uma instância do Integration Services. Para obter mais informações, consulte Gerenciamento de Pacotes (Serviço SSIS).

As opções podem ser digitadas em qualquer ordem. O caractere de pipe ("|") é o operador OR e é usado para mostrar possíveis valores. Você deve usar uma das opções delimitadas pelo pipe OR.

Todas as opções devem iniciar com uma barra (/) ou um sinal de menos (-). Porém, não inclua um espaço em branco entre a barra ou o sinal de menos e o texto da opção. Se isso for feito, ocorrerá uma falha no comando.

Os argumentos devem ser cadeias de caracteres que sejam colocadas entre aspas ou que não contenham espaços em branco.

Aspas duplas dentro de cadeias de caracteres que são colocadas entre aspas representam aspas simples.

Opções e argumentos, excetos em senhas, não diferenciam maiúsculas e minúsculas.

Considerações sobre a instalação em computadores de 64 bits

Em um computador de 64 bits, o Integration Services instala a versão de 64 bits dos utilitários dtexec (dtexec.exe) e dtutil (dtutil.exe). Para instalar versões de 32 bits das ferramentas do Integration Services, você deverá selecionar Ferramentas de Cliente ou SQL Server Data Tools (SSDT) durante a instalação.

Por padrão, um computador de 64 bits que tem as versões de 64 e de 32 bits de um prompt de comando do Integration Services instaladas executará a versão de 32 bits no prompt de comando. A versão de 32 bits é executada porque o caminho do diretório da versão de 32 bits aparece na variável de ambiente PATH antes do caminho do diretório da versão de 64 bits. (Normalmente, o caminho do diretório de 32 bits é <drive>:\Program Files(x86)\Microsoft SQL Server\120\DTS\Binn, enquanto o caminho do diretório de 64 bits é <drive>:\Program Files\Microsoft SQL Server\120\DTS\Binn.)

Observação

Se você usar o SQL Server Agent para executar o utilitário, o SQL Server Agent usará automaticamente a versão de 64 bits do utilitário. O SQL Server Agent usa o Registro, não a variável de ambiente PATH, para localizar o executável correto do utilitário.

Para garantir que a versão de 64 bits do utilitário no prompt de comando seja executada, execute uma das seguintes ações:

  • Abra uma janela do Prompt de Comando, altere para o diretório que contém a versão de 64 bits do utilitário (<unidade>:\Arquivos de Programas\Microsoft SQL Server\120\DTS\Binn) e execute o utilitário nesse local.

  • No prompt de comando, execute o utilitário inserindo o caminho completo (<unidade>:\Arquivos de Programas\Microsoft SQL Server\120\DTS\Binn) para a versão de 64 bits do utilitário.

  • Altere permanentemente a ordem dos caminhos na variável de ambiente PATH colocando o caminho de 64 bits (<unidade>:\Arquivos de Programas\Microsoft SQL Server\120\DTS\Binn) antes do caminho de 32 bits (<unidade>:\ Arquivos de Programas(x86)\Microsoft SQL Server\120\DTS\Binn) na variável.

Sintaxe

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

parâmetros

Opção Descrição
/? Exibe as opções do prompt de comando.
/C[opy] location;destinationPathandPackageName Especifica uma ação de cópia em um pacote SSIS. O uso desse parâmetro requer que você especifique primeiro o local do pacote usando a opção /FI, /SQou /DT . Em seguida, especifique o nome de pacote do destino local. O argumento destinationPathandPackageName especifica onde o pacote SSIS é copiado. Se o local de destino for SQL, os argumentos DestUser, DestPassword e DestServer também deverão ser especificados no comando.

Quando a Copy ação encontra um pacote existente no destino, o dtutil solicita que o usuário confirme a exclusão do pacote. A resposta Y substitui o pacote e N encerra o programa. Quando o comando inclui o argumento Quiet , nenhum prompt aparece e todos os pacotes existentes são substituídos.
/Dec[rypt] password (Opcional). Define a senha de decodificação usada ao carregar um pacote com criptografia de senha.
/Del[ete] Exclui o pacote especificado pelo SQL, DTS ou pela opção FILE . Se dtutil não puder excluir o pacote, o programa será encerrado.
/DestP[assword] password Especifica a senha usada com a opção SQL para estabelecer conexão com uma instância de destino do SQL Server usando a Autenticação do SQL Server. Ocorrerá um erro caso DESTPASSWORD seja especificado em uma linha de comando que não inclui a opção DTSUSER .

Nota: Quando possível, use a Autenticação do Windows.
/DestS[erver] server_instance Especifica o nome do servidor usado com qualquer ação que faça com que um destino seja salvo no SQL Server. É usado para identificar um servidor não local ou não padrão ao salvar um pacote SSIS. É um erro especificar DESTSERVER em uma linha de comando que não tem uma ação associada ao SQL Server. Ações como SIGN SQL, COPY SQLou opções MOVE SQL seriam comandos apropriados para a combinação com essa opção.

Um nome de instância do SQL Server pode ser especificado adicionando uma barra invertida e o nome de instância ao nome do servidor.
/DestU[ser] username Especifica o nome de usuário usado com as opções SIGN SQL, COPY SQLe MOVE SQL para estabelecer conexão com uma instância do SQL Server que usa a Autenticação do SQL Server. É um erro especificar DESTUSER em uma linha de comando que não inclui a opção SIGN SQL, COPY SQLou MOVE SQL .
/Dump process ID (Opcional.) Faz com que o processo especificado, o utilitário dtexec ou o processo dtsDebugHost.exe , faça uma pausa e crie os arquivos de despejo de depuração, .mdmp e .tmp.

Observação: para usar a opção /Dump, é preciso ter direitos de usuário de Programas de Depuração (SeDebugPrivilege).

Para localizar o process ID para o processo que você deseja pausar, use o Gerenciador de Tarefas do Windows.

Por padrão, o Integration Services armazena os arquivos de despejo de depuração na pasta <drive>:\Program Files\Microsoft SQL Server\120\Shared\ErrorDumps.

Para saber mais sobre o utilitário dtexec e o processo dtsDebugHost.exe , consulte dtexec Utility e Building, Deploying, and Debugging Custom Objects.

Para obter mais informações sobre os arquivos de despejo de depuração, consulte Generating Dump Files for Package Execution.

Observação: os arquivos de despejo de depuração podem conter informações confidenciais. Use uma ACL (lista de controle de acesso) para restringir o acesso aos arquivos ou copie os arquivos em uma pasta que tenha acesso restrito.
/DT[S] filespec Especifica que o pacote SSIS a ser operado está no Armazenamento de Pacotes SSIS. O argumento filespec deve incluir o caminho da pasta, iniciando pela raiz do Repositório de Pacotes SSIS. Por padrão, os nomes das pastas raiz no arquivo de configuração são "MSDB" e "Sistema de Arquivo". Caminhos que contêm um espaço devem ser delimitados usando aspas duplas.

Se a opção DT[S] for especificada na mesma linha de comando como qualquer uma das opções a seguir, DTEXEC_DTEXECERROR será retornado:

FILE

SQL

SOURCEUSER

SOURCEPASSWORD

SOURCESERVER
/En[crypt] {SQL | FILE}; Path;ProtectionLevel[;password] (Opcional). Criptografa o pacote carregado com o nível de proteção e senha especificados e o salva no local especificado em Path. O ProtectionLevel determina se uma senha é necessária:
SQL – Caminho é o nome do pacote de destino.
FILE – Caminho é o caminho completamente qualificado e o nome de arquivo do pacote.
DTS – Não há suporte para esta opção atualmente.

Opções doProtectionLevel :
Nível 0: extrai informações confidenciais.
Nível 1: as informações confidenciais são criptografadas usando as credenciais de usuários locais.
Nível 2: as informações confidenciais são criptografadas usando uma senha obrigatória.
Nível 3: o pacote é criptografado usando uma senha obrigatória.
Nível 4: o pacote é criptografado usando as credenciais de usuários locais.
Nível 5: o pacote usa criptografia de armazenamento do SSIS.
/Ex[ists] (Opcional). Usado para determinar se existe um pacote. dtutil tenta localizar o pacote especificado pelas opções SQL, DTS ou FILE . Se dtutil não puder localizar o pacote especificado, DTEXEC_DTEXECERROR será retornado.
/FC[reate] {SQL | DTS};ParentFolderPath;NewFolderName (Opcional). Crie uma nova pasta com o nome que você especificou em NewFolderName. O local da nova pasta é indicado pelo ParentFolderPath.
/FDe[lete] {SQL | DTS}[;ParentFolderPath;FolderName] (Opcional). Exclui do SQL Server ou SSIS a pasta que foi especificada pelo nome em FolderName. O local da pasta a ser excluída é indicado pelo ParentFolderPath.
/FDi[rectory] {SQL | DTS};FolderPath[;S] (Opcional). Lista os conteúdos, tanto de pastas quanto de pacotes, em uma pasta no SSIS ou no SQL Server. O parâmetro opcional FolderPath especifica a pasta da qual você deseja exibir o conteúdo. O parâmetro opcional S especifica que você deseja exibir uma listagem do conteúdo das subpastas da pasta especificada no FolderPath.
/FE[xists ] {SQL | DTS};FolderPath (Opcional). Verifica se a pasta especificada existe no SSIS ou no SQL Server. O parâmetro FolderPath é o caminho e o nome da pasta a ser verificada.
/Fi[le] filespec Essa opção especifica que o pacote SSIS a ser operado está no sistema de arquivos. O valor filespec pode ser fornecido como caminho local ou caminho UNC (Convenção de Nomenclatura Universal).

Se a opção File for especificada na mesma linha de comando como qualquer uma das opções a seguir, DTEXEC_DTEXECERROR será retornado:

DTS

SQL

SOURCEUSER

SOURCEPASSWORD

SOURCESERVER
/FR[ename] {SQL | DTS} [;ParentFolderPath; OldFolderName;NewFolderName] (Opcional). Renomeia uma pasta no SSIS ou SQL Server especificado. ParentFolderPath é o local da pasta a ser renomeada. OldFolderName é o nome atual da pasta e NewFolderName é o novo nome a ser definido para a pasta.
/H[elp] option Exibe texto de ajuda extenso que mostra as opções do dtutil e descreve seu uso. O argumento da opção é opcional. Se o argumento for incluído, o texto de Ajuda incluirá informações detalhadas sobre a opção especificada. O exemplo a seguir exibe a ajuda para todas as opções:

dtutil /H

Os dois exemplos a seguir mostram como usar a opção /H para exibir a ajuda estendida para uma opção específica, a opção /Q [uiet] , neste exemplo:

dtutil /Help Quiet

dtutil /H Q
/I[DRegenerate] Cria um novo GUID para o pacote e atualiza a propriedade ID do pacote. Quando um pacote é copiado, a ID do pacote permanece a mesma; portanto, os arquivos de log contêm o mesmo GUID para ambos os pacotes. Essa ação cria um novo GUID para o pacote copiado recentemente para distingui-lo do original.
/M[ove] {SQL | File | DTS}; pathandname Especifica uma ação de movimentação em um pacote SSIS. Para usar esse parâmetro, primeiro especifique o local do pacote usando a opção /FI, /SQou /DT . Em seguida, especifique a ação Mover . Essa ação requer dois argumentos que são separados por um ponto-e-vírgula:

O argumento de destino pode especificar SQL, FILEou DTS. Um destino SQL pode incluir as opções DESTUSER, DESTPASSWORDe DESTSERVER .

O argumento pathandname especifica o local do pacote: SQL usa o caminho e o nome do pacote, FILE usa um caminho UNC ou local e DTS usa um local que está relacionado à raiz do Repositório de Pacotes SSIS. Quando o destino for FILE ou DTS, o argumento de caminho não inclui o nome de arquivo. Em vez disso, ele usa o nome do pacote no local especificado como o nome de arquivo.



Quando a MOVE ação encontra um pacote existente no destino, o dtutil solicita que você confirme que deseja substituir o pacote. A resposta Y substitui o pacote e N encerra o programa. Quando o comando inclui a opção QUIET , nenhum prompt aparece e todos os pacotes existentes são substituídos.
/Q[uiet] Para as solicitações de confirmação que podem aparecer quando um comando que inclui a opção COPY, MOVE ou SIGN é executado. Essas solicitações aparecem se um pacote com o mesmo nome do pacote especificado já existir no computador de destino ou se o pacote especificado já estiver assinado.
/R[emark] text Adiciona um comentário à linha de comando. O argumento de comentário é opcional. Se o texto de comentário incluir espaços, ele deverá ser colocado entre aspas. Você pode incluir várias opções REM em uma linha de comando.
/Si[gn] {SQL | File | DTS}; path; hash Assina um pacote SSIS. Essa ação usa três argumentos necessários que são separados por ponto-e-vírgula:

O argumento de destino pode especificar SQL, FILEou DTS. Um destino SQL pode incluir as opções DESTUSER, DESTPASSWORD e DESTSERVER .

O argumento de caminho especifica o local do pacote para aplicar a ação.

O argumento de hash especifica um identificador de certificado expresso como uma cadeia de caracteres hexadecimal de comprimento variado.



** Importante ** Quando configurado para verificar a assinatura do pacote, o Integration Services apenas verifica se a assinatura digital está presente, se é válida e se provém de uma origem confiável. Integration Services não verifica se o pacote foi alterado.

Para obter mais informações, consulte Identificar a origem de pacotes com assinaturas digitais.
/SourceP[assword] password Especifica a senha usada com as opções SQL e SOURCEUSER para ativar a recuperação de um pacote SSIS armazenado em um banco de dados em uma instância do SQL Server que usa a Autenticação do SQL Server. É um erro especificar SOURCEPASSWORD em uma linha de comando que não inclui a SOURCEUSER opção.

Observação: Quando possível, use a Autenticação do Windows.
/SourceS[erver] server_instance Especifica o nome do servidor usado com a SQL opção de habilitar a recuperação de um pacote SSIS armazenado no SQL Server. É um erro especificar SOURCEUSER em uma linha de comando que não inclui a opção SIGN SQL, COPY SQL ou MOVE SQL.

Um nome de instância do SQL Server pode ser especificado adicionando uma barra invertida e o nome de instância ao nome do servidor.
/SourceU[ser] username Especifica o nome de usuário usado com as opções SOURCESERVER para ativar a recuperação de um pacote SSIS armazenado no SQL Server usando a Autenticação do SQL Server. É um erro especificar SOURCEUSER em uma linha de comando que não inclui a opção SIGN SQL, COPY SQLou MOVE SQL .

Observação: Quando possível, use a Autenticação do Windows.
/SQ[L] package_path Especifica o local de um pacote SSIS. Essa opção indica que o pacote está armazenado no banco de dados msdb . O argumento package_path especifica o caminho e nome do pacote SSIS. Os nomes de pasta são finalizados com barras invertidas. Se a opção SQL for especificada na mesma linha de comando como qualquer uma das opções a seguir, DTEXEC_DTEXECERROR será retornado:

DTS

FILE

SQL. A opção SQL pode ser acompanhada por zero ou uma instância das seguintes opções:
SOURCEUSER
SOURCEPASSWORD
SOURCESERVER

Se SOURCEUSERNAME não for incluído, a Autenticação do Windows será usada para acessar o pacote. SOURCEPASSWORD é permitido somente se SOURCEUSER estiver presente. Se SOURCEPASSWORD não for incluído, será usada uma senha em branco.

** Importante ** Não use uma senha em branco. Use uma senha forte.

Códigos de saída do dtutil

O utilitáriodtutil define um código de saída que alerta quando forem detectados erros de sintaxe, quando forem usados argumentos incorretos ou quando forem especificadas combinações de opções inválidas. Caso contrário, o utilitário indicará "A operação foi concluída com êxito". A tabela a seguir lista os valores que o utilitário dtutil pode definir ao sair.

Valor Descrição
0 O utilitário foi executado com êxito.
1 O utilitário falhou.
4 O utilitário não pode localizar o pacote solicitado.
5 O utilitário não pode carregar o pacote solicitado.
6 O utilitário não pode resolver a linha de comando porque contém erros sintáticos ou semânticos.

Comentários

Você não pode usar arquivos de comandos ou redirecionamento com dtutil.

A ordem das opções dentro da linha de comando não é significativa.

Exemplos

Os exemplos a seguir detalham cenários comuns do uso da linha de comando.

Exemplos de cópia

Para copiar um pacote armazenado no banco de dados msdb em uma instância local do SQL Server usando a Autenticação do Windows para o Armazenamento de Pacotes do SSIS, use a seguinte sintaxe:

dtutil /SQL srcPackage /COPY DTS;destFolder\destPackage   

Para copiar um pacote de um local para outro no sistema de arquivos e fornecer à cópia outro nome, use a seguinte sintaxe:

dtutil /FILE c:\myPackages\mypackage.dtsx /COPY FILE;c:\myTestPackages\mynewpackage.dtsx  

Para copiar um pacote em um sistema de arquivos local para uma instância do SQL Server hospedado em outro computador, use a seguinte sintaxe:

dtutil /FILE c:\sourcepkg.dtsx /DestServer <servername> /COPY SQL;destpkgname  

Como as opções /DestU[ser] e /DestP[assword] não foram usadas, a Autenticação de Windows é assumida.

Para criar uma nova ID a um pacote depois que ele for copiado, use a seguinte sintaxe:

dtutil /I /FILE copiedpkg.dtsx   

Para criar uma nova ID para todos os pacotes em uma determinada pasta, use a seguinte sintaxe:

for %%f in (C:\test\SSISPackages\*.dtsx) do dtutil.exe /I /FILE %%f  

Use apenas um sinal de porcentagem (%) ao digitar o comando no prompt de comando. Use dois sinais de porcentagem (%%) se o comando for usado dentro de um arquivo em lotes.

Exemplos de exclusão

Para excluir um pacote armazenado no banco de dados msdb em uma instância do SQL Server que usa a Autenticação do Windows, use a seguinte sintaxe:

dtutil /SQL delPackage /DELETE  

Para excluir um pacote armazenado no banco de dados msdb em uma instância do SQL Server que usa a Autenticação do SQL Server, use a seguinte sintaxe:

dtutil /SQL delPackage /SOURCEUSER srcUserName /SOURCEPASSWORD #8nGs*w7F /DELETE  

Observação

Para excluir um pacote de um servidor nomeado, inclua a opção SOURCESERVER e seu argumento. Você só pode especificar um servidor usando a opção SQL .

Para excluir um pacote armazenado no Armazenamento de Pacotes SSIS, use a seguinte sintaxe:

dtutil /DTS delPackage.dtsx /DELETE  

Para excluir um pacote armazenado no sistema de arquivos, use a seguinte sintaxe:

dtutil /FILE c:\delPackage.dtsx /DELETE  

Exemplos de existência

Para determinar se existe um pacote no banco de dados msdb em uma instância local do SQL Server que usa a Autenticação do Windows, use a seguinte sintaxe:

dtutil /SQL srcPackage /EXISTS  

Para determinar se existe um pacote no banco de dados msdb em uma instância local do SQL Server que usa a Autenticação do SQL Server, use a seguinte sintaxe:

dtutil SQL srcPackage /SOURCEUSER srcUserName /SOURCEPASSWORD *hY$d56b /EXISTS  

Observação

Para determinar se existe um pacote em um servidor nomeado, inclua a opção SOURCESERVER e seu argumento. Você só pode especificar um servidor usando a opção SQL.

Para determinar se existe um pacote no armazenamento de pacotes local, use a seguinte sintaxe:

dtutil /DTS srcPackage.dtsx /EXISTS  

Para determinar se existe um pacote no sistema de arquivos local, use a seguinte sintaxe:

dtutil /FILE c:\srcPackage.dtsx /EXISTS  

Exemplos de movimentação

Para mover um pacote armazenado no Repositório de Pacotes SSIS do banco de dados msdb em uma instância local do SQL Server que usa a Autenticação do Windows, use a seguinte sintaxe:

dtutil /DTS srcPackage.dtsx /MOVE SQL;destPackage  

Para mover um pacote armazenado no banco de dados msdb em uma instância local do SQL Server que usa a Autenticação do SQL Server para o banco de dados msdb em outra instância local do SQL Server que usa a Autenticação do SQL Server, use a seguinte sintaxe:

dtutil /SQL srcPackage /SOURCEUSER srcUserName /SOURCEPASSWORD $Hj45jhd@X /MOVE SQL;destPackage /DESTUSER destUserName /DESTPASSWORD !38dsFH@v  

Observação

Para mover um pacote de um servidor nomeado para outro, inclua as opções SOURCES e DESTS e seus argumentos. Você só pode especificar os servidores usando a opção SQL .

Para mover um pacote armazenado no Armazenamento de Pacotes SSIS, use a seguinte sintaxe:

dtutil /DTS srcPackage.dtsx /MOVE DTS;destPackage.dtsx  

Para mover um pacote armazenado no sistema de arquivos, use a seguinte sintaxe:

dtutil /FILE c:\srcPackage.dtsx /MOVE FILE;c:\destPackage.dtsx  

Exemplos de assinatura

Para assinar um pacote armazenado em um banco de dados do SQL Server em uma instância local do SQL Server que usa a Autenticação do Windows, use a seguinte sintaxe:

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

Para localizar informações sobre seu certificado, use CertMgr. O código hash pode ser exibido no utilitário CertMgr selecionando o certificado e clicando em Exibir para exibir as propriedades. A guia Detalhes fornece mais informações sobre o certificado. A propriedade Thumbprint é usada como o valor de hash, com espaços removidos.

Observação

O hash usado neste exemplo não é um hash real.

Para obter mais informações, consulte a seção CertMgr em Assinando e verificando o código de verificação com Authenticode.

Exemplos de criptografia

O exemplo a seguir criptografa o arquivo PackageToEncrypt.dtsx para o arquivo EncryptedPackage.dts usando criptografia completa de pacote, com uma senha. A senha usada para a criptografia é EncPswd.

dtutil /FILE PackageToEncrypt.dtsx /ENCRYPT file;EncryptedPackage.dtsx;3;EncPswd  

Confira também

Executar um pacote no SQL Server Data Tools