Compartilhar via


Utilitário dtutil (ferramenta SSIS)

O utilitário 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 Microsoft SQL Server, o Armazenamento de Pacotes SSIS e o sistema de arquivos. O tipo de armazenamento do pacote é identificado por /SQL, /FILE e pelas opções /DTS.

ObservaçãoObservaçã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 Gerenciando de pacotes.

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 de ferramentas do SSIS 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 dessas ferramentas do Integration Services, você deve selecionar Ferramentas de Cliente ou Business Intelligence Development Studio durante a instalação.

Por padrão, um computador de 64 bits que tem as versões de 16 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 é <unidade>:\Arquivos de Programas(x86)\Microsoft SQL Server\100\DTS\Binn, enquanto o caminho do diretório de 64 bits é <unidade>:\Arquivos de Programas\Microsoft SQL Server\100\DTS\Binn.)

ObservaçãoObservaçã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 a janela 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\100\DTS\Binn) e execute o utilitário nesse local.

  • No prompt de comando, execute o utilitário digitando o caminho completo (<unidade>:\Arquivos de Programas\Microsoft SQL Server\100\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\100\DTS\Binn) antes do caminho de 32 bits (<unidade>:\Arquivos de Programas(x86)\Microsoft SQL Server\100\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, /SQ ou /DT. Em seguida, especifique o nome de pacote do destino local. O argumento destinationPathandPackageName especifica onde o pacote SSIS é copiado. Se o location de destino for SQL, os argumentos DestUser, DestPassword e DestServer também deverão ser especificados no comando.

Quando a ação Copy 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.

ObservaçãoObservação
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 SQL ou 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 SQL e 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 SQL ou 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çãoObservaçã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 <unidade>:\Arquivos de Programas\Microsoft SQL Server\100\Shared\ErrorDumps.

Para obter mais informações sobre o utilitário dtexec e o processo dtsDebugHost.exe, consulte Utilitário dtexec (ferramenta SSIS) e Compilando, implantando e depurando objetos personalizados.

Para obter mais informações sobre os arquivos de despejo de depuração, consulte Trabalhando com arquivos de despejo de depuração.

ObservaçãoObservação
Os arquivos de despejo de depuração podem conter informações confidenciais. Use uma lista de controle de acesso (ACL) para restringir o acesso aos arquivos ou copie os arquivos para 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 Armazenamento de Pacotes SSIS. Por padrão, os nomes das pastas raiz no arquivo de configuração são "MSDB" e "File System". Os 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 é obrigatório o uso de uma senha.

  • SQL - Caminho é o nome de pacote de destino.

  • FILE - Caminho é o caminho completamente qualificado e o nome de arquivo do pacote.

  • DTS - Esta opção não é suportada atualmente.

Opções do ProtectionLevel:

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 SQL Server.

/Ex[ists]

(Opcional.) Usado para determinar se existe um pacote. O dtutil tenta localizar o pacote especificado nas 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 no SQL Server. 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 extensiva 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, /SQ ou /DT. Em seguida, especifique a ação Move. Essa ação requer dois argumentos que são separados por um ponto-e-vírgula:

  • O argumento de destino pode especificar SQL, FILE ou DTS. Um destino SQL pode incluir as opções DESTUSER, DESTPASSWORD e 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 Armazenamento 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 ação MOVE encontra um pacote existente no destino, o dtutil solicita que você confirme a substituição do 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, FILE ou 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.

Para obter mais informações, consulte Usando assinaturas digitais com pacotes.

Observação importanteImportante
Quando configurado para verificar a assinatura do pacote, o Integration Services só verifica se a assinatura digital está presente, se é válida e se provém de uma fonte confiável. O Integration Services não verifica se o pacote foi alterado.

/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 opção SOURCEUSER.

ObservaçãoObservação
Quando possível, use a Autenticação do Windows.

/SourceS[erver] server_instance

Especifica o nome do servidor usado com a opção SQL para ativar a recuperação de um pacote SSIS armazenado no SQL Server. É um erro especificar SOURCESERVER em uma linha de comando que não inclui a opção SIGN SQL, COPYSQL ou MOVESQL.

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 a opção 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 SQL ou MOVE SQL.

ObservaçãoObservaçã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

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

  • SOURCEUSER

  • SOURCEPASSWORD

  • SOURCESERVER

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

Observação importanteImportante
Não use uma senha em branco. Use uma senha forte.

dtutil (ferramenta SSIS): códigos de saída

O utilitário dtutil 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.

dtutil (ferramenta SSIS): exemplos

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

dtutil (ferramenta SSIS): 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 Pacotes 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.

dtutil (ferramenta SSIS): 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çãoObservaçã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

dtutil (ferramenta SSIS): 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çãoObservaçã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

dtutil (ferramenta SSIS): 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çãoObservaçã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

dtutil (ferramenta SSIS): 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 de 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çãoObservaçã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.

dtutil (ferramenta SSIS): 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
Ícone do Integration Services (pequeno) Fique atualizado com o Integration Services

Para obter os downloads, artigos, exemplos e vídeos da Microsoft mais recentes, bem como soluções selecionadas da comunidade, visite a página do Integration Services no MSDN:


Para receber uma notificação automática sobre essas atualizações, assine os RSS feeds disponíveis na página.