dtutil (utilidad)

La utilidad del símbolo del sistema dtutil se utiliza para administrar paquetes de SQL ServerIntegration Services. La utilidad puede copiar, mover, eliminar o comprobar la existencia de un paquete. Estas acciones se pueden realizar en cualquier paquete SSIS almacenado en una de estas tres ubicaciones: una base de datos de MicrosoftSQL Server, el almacén de paquetes SSIS y el sistema de archivos. El tipo de almacenamiento del paquete se identifica mediante las opciones /SQL, /FILE y /DTS.

[!NOTA]

Muchas de las operaciones que dtutil realiza también se pueden llevar a cabo visualmente en SQL Server Management Studio cuando se está conectado a una instancia de Integration Services. Para obtener más información, vea Administrar paquetes.

Las opciones se pueden escribir en cualquier orden. El carácter de barra vertical ("|") es el operador OR y se utiliza para mostrar posibles valores. Debe utilizar una de las opciones delimitadas por la canalización OR.

Todas las opciones deben comenzar con una barra diagonal (/) o un signo menos (-). Sin embargo, no debe incluir un espacio entre la barra diagonal o el signo menos y el texto de la opción; de lo contrario, se producirá un error en el comando.

Los argumentos deben ser cadenas que estén incluidas entre comillas o que no contengan ningún espacio en blanco.

Las comillas dobles de cadenas que están entre comillas representan comillas simples de escape.

Las opciones y los argumentos, excepto las contraseñas, no distinguen entre mayúsculas y minúsculas.

Consideraciones sobre la instalación en equipos de 64 bits

En un equipo de 64 bits, Integration Services instala una versión de 64 bits de la utilidad dtexec (dtexec.exe) y la utilidad dtutil (dtutil.exe). Para instalar las versiones de 32 bits de estas herramientas de Integration Services, debe seleccionar Herramientas cliente o Business Intelligence Development Studio durante la instalación.

De forma predeterminada, si un equipo de 64 bits tiene instaladas tanto las versiones de 64 bits como las de 32 bits de una utilidad de líneas de comandos de Integration Services, ejecutará la versión de 32 bits en el símbolo del sistema. La versión de 32 bits se ejecuta porque la ruta de acceso del directorio para la versión de 32 bits aparece en la variable de entorno PATH antes que la ruta de acceso del directorio para la versión de 64 bits. (Normalmente, la ruta de acceso del directorio de 32 bits es <unidad>:\Archivos de programa(x86)\Microsoft SQL Server\100\DTS\Binn, mientras que la ruta de acceso del directorio de 64 bits es <unidad>:\Archivos de programa\Microsoft SQL Server\100\DTS\Binn.)

[!NOTA]

Si usa el Agente SQL Server para ejecutar la utilidad, el Agente SQL Server usa la versión de 64 bits de la utilidad automáticamente. El Agente SQL Server usa el registro, no la variable de entorno PATH, para buscar la aplicación ejecutable correcta para la utilidad.

Para garantizar que se ejecuta la versión de 64 bits de la utilidad en el símbolo del sistema, puede realizar una de las siguientes acciones:

  • Abra una ventana del símbolo del sistema, cambie al directorio que contiene la versión de 64 bits de la utilidad (<unidad>:\Archivos de programa\Microsoft SQL Server\100\DTS\Binn) y, a continuación, ejecute la utilidad desde esa ubicación.

  • En el símbolo del sistema, ejecute la utilidad escribiendo la ruta de acceso completa (<unidad>: \Archivos de programa\Microsoft SQL Server\100\DTS\Binn) para la versión de 64 bits de la utilidad.

  • Cambie de forma permanente el orden de las rutas de acceso en la variable de entorno PATH situando en la variable la ruta de acceso de 64 bits (<unidad>:\Archivos de programa\Microsoft SQL Server\100\DTS\Binn) antes que la ruta de acceso de 32 bits (<unidad>:\Archivos de programa(x86)\Microsoft SQL Server\100\DTS\Binn).

Sintaxis

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

Parámetros

Opción

Descripción

/?

Muestra las opciones del símbolo del sistema.

/C[opy] location;destinationPathandPackageName

Especifica una acción para copiar en un paquete SSIS. El uso de este parámetro requiere que especifique primero la ubicación del paquete con la opción /FI, /SQ o /DT. A continuación, deberá especificar la ubicación de destino y el nombre del paquete de destino. El argumento destinationPathandPackageName especifica en dónde se copia el paquete SSIS. Si location de destino es SQL, también se deben especificar los argumentos DestUser, DestPassword y DestServer en el comando.

Cuando la acción Copy encuentra un paquete que ya existe en el destino, dtutil pide al usuario que confirme la eliminación del paquete. La respuesta Y sobrescribe el paquete y la respuesta N finaliza el programa. Cuando el comando incluye el argumento Quiet, no aparece ningún mensaje y los paquetes existentes se sobrescriben.

/Dec[rypt] password

(Opcional) Establece la contraseña de descifrado que se utiliza cuando se carga un paquete con cifrado de contraseña.

/Del[ete]

Elimina el paquete especificado por la opción SQL, DTS o FILE. Si dtutil no puede eliminar el paquete, el programa finaliza.

/DestP[assword] password

Especifica la contraseña utilizada con la opción de SQL para conectar con una instancia de SQL Server de destino mediante autenticación de SQL Server. Se genera un error si se especifica DESTPASSWORD en una línea de comandos que no incluye la opción DTSUSER.

NotaNota
Siempre que sea posible, utilice la autenticación de Windows..

/DestS[erver] server_instance

Especifica el nombre de servidor que se utiliza con cualquier acción que haga que un destino se guarde en SQL Server. Se utiliza para identificar un servidor que no es local o que no es el predeterminado cuando se guarda un paquete SSIS. Es un error especificar DESTSERVER en una línea de comandos que no tiene una acción asociada con SQL Server. Las acciones tales como las opciones SIGN SQL, COPY SQL o MOVE SQL serían comandos adecuados para combinar con esta opción.

Un nombre de instancia de SQL Server se puede especificar agregando al nombre del servidor una barra diagonal inversa y el nombre de la instancia.

/DestU[ser] username

Especifica el nombre de usuario utilizado con las opciones SIGN SQL, COPY SQL y MOVE SQL para conectar con una instancia de SQL Server que utiliza autenticación de SQL Server. Es un error especificar DESTUSER en una línea de comandos que no incluye la opción SIGN SQL, COPY SQL o MOVE SQL.

/Dump process ID

(Opcional) Hace que el proceso especificado, la utilidad dtexec o el proceso dtsDebugHost.exe, se ponga en pausa y cree los archivos de volcado de depuración, .mdmp y .tmp.

NotaNota
Para utilizar la opción /Dump, debe tener asignado el derecho de usuario Depurar programas (SeDebugPrivilege).

Para buscar el process ID del proceso que desea poner en pausa, utilice el Administrador de tareas de Windows.

De forma predeterminada, Integration Services almacena los archivos de volcado de depuración en la carpeta <unidad>:\Archivos de programa\Microsoft SQL Server\100\Shared\ErrorDumps.

Para obtener más información sobre la utilidad dtexec y el proceso dtsDebugHost.exe, vea dtexec (utilidad) y Generar, implementar y depurar objetos personalizados.

Para obtener más información sobre los archivos de volcado de depuración, vea Trabajar con archivos de volcado de depuración.

NotaNota
Los archivos de volcado de depuración pueden contener información confidencial. Utilice una lista de control de acceso (ACL) para restringir el acceso a los archivos o cópielos en una carpeta con acceso restringido.

/DT[S] filespec

Especifica que el paquete de SSIS sobre el que se trabajará está situado en el almacén de paquetes SSIS. El argumento filespec debe incluir la ruta de acceso de la carpeta, a partir de la raíz del almacén de paquetes SSIS. De forma predeterminada, los nombres de las carpetas raíz en el archivo de configuración son "MSDB" y "File System". Las rutas de acceso que contienen un espacio se deben delimitar utilizando comillas dobles.

Si se especifica la opción DT[S] en la misma línea de comandos que cualquiera de las siguientes opciones, se devuelve DTEXEC_DTEXECERROR:

  • FILE

  • SQL

  • SOURCEUSER

  • SOURCEPASSWORD

  • SOURCESERVER

/En[crypt] {SQL | FILE}; Path;ProtectionLevel[;password]

(Opcional) Cifra el paquete cargado con la contraseña y el nivel de protección especificado y lo guarda en la ubicación especificada en Path. ProtectionLevel determina si hace falta una contraseña.

  • SQL : la ruta es el nombre del paquete de destino.

  • FILE : la ruta es la ruta de acceso completa y el nombre de archivo del paquete.

  • DTS : esta opción no se admite actualmente.

Opciones de ProtectionLevel:

Nivel 0: elimina la información confidencial.

Nivel 1: la información confidencial se cifra mediante credenciales de usuario locales.

Nivel 2: la información confidencial se cifra mediante la contraseña requerida.

Nivel 3: el paquete se cifra mediante la contraseña requerida.

Nivel 4: el paquete se cifra mediante credenciales de usuario locales.

Nivel 5: El paquete utiliza el cifrado de almacenamiento de SQL Server.

/Ex[ists]

(Opcional) Se utiliza para determinar si un paquete existe. dtutil intenta localizar el paquete especificado por las opciones SQL, DTS o FILE. Si dtutil no puede localizar el paquete especificado, se devuelve DTEXEC_DTEXECERROR.

/FC[reate] {SQL | DTS};ParentFolderPath;NewFolderName

(Opcional) Crea una nueva carpeta que tiene el nombre especificado en NewFolderName. La ubicación de la nueva carpeta viene indicada por ParentFolderPath.

/FDe[lete] {SQL | DTS}[;ParentFolderPath;FolderName]

(Opcional) Elimina de SQL Server o SSIS la carpeta especificada por el nombre en FolderName. La ubicación de la carpeta que se va a eliminar viene indicada por ParentFolderPath.

/FDi[rectory] {SQL | DTS};FolderPath[;S]

(Opcional) Muestra el contenido, tanto carpetas como paquetes, en una carpeta de SSIS o SQL Server. El parámetro FolderPath opcional especifica la carpeta cuyo contenido desea ver. El parámetro S opcional especifica si desea ver un listado del contenido de las subcarpetas para la carpeta especificada en FolderPath.

/FE[xists ] {SQL | DTS};FolderPath

(Opcional) Comprueba si la carpeta especificada existe en SSIS o SQL Server. El parámetro FolderPath es la ruta de acceso y el nombre de la carpeta que se va a comprobar.

/Fi[le] filespec

Esta opción especifica que el paquete SSIS sobre el que se trabajará está ubicado en el sistema de archivos. El valor filespec se puede proporcionar como ruta UNC (Convención de nomenclatura universal) o ruta local.

Si se especifica la opción File en la misma línea de comandos que cualquiera de las siguientes opciones, se devuelve DTEXEC_DTEXECERROR:

  • DTS

  • SQL

  • SOURCEUSER

  • SOURCEPASSWORD

  • SOURCESERVER

/FR[ename] {SQL | DTS} [;ParentFolderPath; OldFolderName;NewFolderName]

(Opcional) Cambia el nombre de una carpeta de SSIS o SQL Server. ParentFolderPath es la ubicación de la carpeta cuyo nombre se desea cambiar. OldFolderName es el nombre actual de la carpeta y NewFolderName es el nuevo nombre que se dará a la carpeta.

/H[elp] option

Muestra una completa ayuda que enumera las opciones de dtutil y describe su uso. El argumento de opción es opcional. Si se incluye el argumento, el texto de la ayuda incluye información detallada acerca de la opción especificada. El siguiente ejemplo muestra la ayuda para todas las opciones:

dtutil /H

Los siguientes dos ejemplos muestran cómo usar la opción /H para mostrar ayuda ampliada para una opción específica, la opción /Q [uiet], en este ejemplo:

dtutil /Help Quiet

dtutil /H Q

/I[DRegenerate]

Especifica un nuevo GUID para el paquete y actualiza la propiedad ID del paquete. Cuando se copia un paquete, el identificador del paquete sigue siendo el mismo y, por lo tanto, los archivos de registro contienen el mismo GUID para ambos paquetes. Esta acción crea un nuevo GUID para el paquete que se acaba de copiar para distinguirlo del original.

/M[ove] {SQL | File | DTS}; pathandname

Especifica una acción para mover en un paquete SSIS. Para usar este parámetro, especifique primero la ubicación del paquete con la opción /FI, /SQ o /DT. A continuación, especifique la acción Move. Esta acción requiere dos argumentos, separados por un punto y coma:

  • El argumento de destino puede especificar SQL, FILE o DTS. Un destino SQL puede incluir las opciones DESTUSER, DESTPASSWORD y DESTSERVER.

  • El argumento pathandname especifica la ubicación del paquete: SQL utiliza la ruta de acceso y el nombre del paquete, FILE utiliza una ruta de acceso local o UNC y DTS utiliza una ubicación relativa con respecto a la raíz del almacén de paquetes SSIS. Cuando el destino es FILE o DTS, el argumento de la ruta no incluye el nombre del archivo. En su lugar, utiliza el nombre del paquete en la ubicación especificada como nombre de archivo.

Cuando la acción MOVE encuentra un paquete que ya existe en el destino, dtutil le solicita que confirme si desea sobrescribir el paquete. La respuesta Y sobrescribe el paquete y la respuesta N finaliza el programa. Cuando el comando incluye la opción QUIET, no aparece ningún mensaje y los paquetes existentes se sobrescriben.

/Q[uiet]

Detiene los mensajes de confirmación que pueden aparecer cuando se ejecuta un comando que incluye la opción COPY, MOVE o SIGN. Esos mensajes aparecen si ya existe en el equipo de destino un paquete con el mismo nombre que el paquete especificado o si el paquete especificado ya está firmado.

/R[emark] text

Agrega un comentario a la línea de comandos. El argumento de comentario es opcional. Si el comentario de texto incluye espacios, el texto debe ir entre comillas. Puede incluir varias opciones REM en una línea de comandos.

/Si[gn] {SQL | File | DTS}; path; hash

Firma un paquete SSIS. Esta acción utiliza tres argumentos obligatorios, que están separados por punto y coma:

  • El argumento de destino puede especificar SQL, FILE o DTS. Un destino SQL puede incluir las opciones DESTUSER, DESTPASSWORD y DESTSERVER.

  • El argumento de ruta especifica la ubicación del paquete en el que se realizará la acción.

  • El argumento hash especifica un identificador de certificado expresado como una cadena hexadecimal de longitud variable.

Para obtener más información, vea Utilizar firmas digitales con los paquetes.

Nota importanteImportante
Cuando se configura para comprobar la firma del paquete, Integration Services sólo comprueba si la firma digital está presente, es válida y procede de un origen de confianza. Integration Services no comprueba si se ha cambiado el paquete.

/SourceP[assword] password

Especifica la contraseña que se utiliza con las opciones SQL y SOURCEUSER para habilitar la recuperación de un paquete SSIS que está almacenado en una base de datos en una instancia de SQL Server que utiliza autenticación de SQL Server. Es un error especificar SOURCEPASSWORD en una línea de comandos que no incluye la opción SOURCEUSER.

NotaNota
Siempre que sea posible, utilice la autenticación de Windows.

/SourceS[erver] server_instance

Especifica el nombre de servidor que se utiliza con la opción SQL para habilitar la recuperación de un paquete SSIS que está almacenado en SQL Server. Es un error especificar SOURCESERVER en una línea de comandos que no incluye la opción SIGN SQL, COPYSQL o MOVESQL.

Un nombre de instancia de SQL Server se puede especificar agregando al nombre del servidor una barra diagonal inversa y el nombre de la instancia.

/SourceU[ser] username

Especifica el nombre de usuario que se utiliza con la opción SOURCESERVER para habilitar la recuperación de un paquete SSIS almacenado en SQL Server mediante autenticación de SQL Server. Es un error especificar SOURCEUSER en una línea de comandos que no incluye la opción SIGN SQL, COPY SQL o MOVE SQL.

NotaNota
Siempre que sea posible, utilice la autenticación de Windows.

/SQ[L] package_path

Especifica la ubicación de un paquete SSIS. Esta opción indica que el paquete está almacenado en la base de datos msdb. El argumento package_path especifica la ruta y el nombre del paquete SSIS. Los nombres de carpetas terminan con barras diagonales inversas.

Si se especifica la opción SQL en la misma línea de comandos que cualquiera de las siguientes opciones, se devuelve DTEXEC_DTEXECERROR:

  • DTS

  • FILE

    La opción SQL puede estar acompañada por ninguna o una instancia de las siguientes opciones:

  • SOURCEUSER

  • SOURCEPASSWORD

  • SOURCESERVER

Si no se incluye SOURCEUSERNAME, se utiliza la autenticación de Windows para tener acceso al paquete. SOURCEPASSWORD se permite sólo si SOURCEUSER está presente. Si no se incluye SOURCEPASSWORD, se utiliza una contraseña en blanco.

Nota importanteImportante
No utilice una contraseña en blanco. Utilice una contraseña segura.

Códigos de salida de dtutil

dtutil establece un código de salida que le avisa cuando se detectan errores de sintaxis, se utilizan argumentos incorrectos o se especifican combinaciones no válidas de opciones. En caso contrario, la utilidad presenta el mensaje "La operación se ha realizado correctamente". En la tabla siguiente se muestran los valores que la utilidad dtutil puede establecer al salir.

Valor

Descripción

0

La utilidad se ha ejecutado correctamente.

1

Error de la utilidad.

4

La utilidad no puede localizar el paquete solicitado.

5

La utilidad no puede cargar el paquete solicitado.

6

La utilidad no puede resolver la línea de comandos porque contiene errores sintácticos o semánticos.

Notas

No puede usar las líneas de comandos o redirección con dtutil.

El orden de las opciones de la línea de comandos no es significativo.

Ejemplos

Los siguientes ejemplos detallan escenarios típicos de uso de la línea de comandos.

Ejemplos de copia

Para copiar un paquete que está almacenado en la base de datos msdb de una instancia local de SQL Server utilizando la autenticación de Windows en el Almacén de paquetes SSIS, utilice la siguiente sintaxis:

dtutil /SQL srcPackage /COPY DTS;destFolder\destPackage 

Para copiar un paquete desde una ubicación del sistema de archivos a otra ubicación y asignar a la copia un nombre diferente, utilice la siguiente sintaxis:

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

Para copiar un paquete del sistema de archivos local en una instancia de SQL Server alojada en otro equipo, utilice la siguiente sintaxis:

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

Como no se han usado las opciones /DestU[ser] y /DestP[assword], se asume la autenticación de Windows.

Para crear un nuevo Id. para un paquete después de copiarlo, utilice la siguiente sintaxis:

dtutil /I /FILE copiedpkg.dtsx 

Para crear un nuevo Id. para todos los paquetes de una carpeta específica, utilice la siguiente sintaxis:

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

Use un solo signo de porcentaje (%) al escribir el comando en el símbolo del sistema. Use un signo de porcentaje doble (%) si se utiliza el comando en un archivo por lotes.

Ejemplos de eliminación

Para eliminar un paquete que está almacenado en la base de datos msdb en una instancia de SQL Server que utiliza la autenticación de Windows, utilice la siguiente sintaxis:

dtutil /SQL delPackage /DELETE

Para eliminar un paquete que está almacenado en la base de datos msdb en una instancia de SQL Server que utiliza la autenticación de SQL Server, utilice la siguiente sintaxis:

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

[!NOTA]

Para eliminar un paquete de un servidor con nombre, incluya la opción SOURCESERVER y su argumento. Sólo puede especificar un servidor utilizando la opción SQL.

Para eliminar un paquete que está almacenado en el Almacén de paquetes SSIS, utilice la siguiente sintaxis:

dtutil /DTS delPackage.dtsx /DELETE

Para eliminar un paquete que está almacenado en el sistema de archivos, utilice la siguiente sintaxis:

dtutil /FILE c:\delPackage.dtsx /DELETE

Ejemplos de existencia

Para determinar si un paquete existe en la base de datos msdb de una instancia local de SQL Server que utiliza la autenticación de Windows, utilice la siguiente sintaxis:

dtutil /SQL srcPackage /EXISTS

Para determinar si un paquete existe en la base de datos msdb de una instancia local de SQL Server que utiliza la autenticación de SQL Server, utilice la siguiente sintaxis:

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

[!NOTA]

Para determinar si un paquete existe en un servidor con nombre, incluya la opción SOURCESERVER y su argumento. Sólo puede especificar un servidor con la opción SQL.

Para determinar si un paquete existe en el Almacén de paquetes local, utilice la siguiente sintaxis:

dtutil /DTS srcPackage.dtsx /EXISTS

Para determinar si un paquete existe en el sistema de archivos local, utilice la siguiente sintaxis:

dtutil /FILE c:\srcPackage.dtsx /EXISTS

Ejemplos de movimiento

Para mover un paquete que está almacenado en el Almacén de paquetes SSIS a la base de datos msdb de una instancia local de SQL Server que use la autenticación de Windows, utilice la siguiente sintaxis:

dtutil /DTS srcPackage.dtsx /MOVE SQL;destPackage

Para mover un paquete que esté almacenado en la base de datos msdb de una instancia local de SQL Server que utilice la autenticación de SQL Server a la base de datos msdb en otra instancia local de SQL Server que utilice la autenticación de SQL Server, utilice la siguiente sintaxis:

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

[!NOTA]

Para mover un paquete de un servidor con nombre a otro, incluya las opciones SOURCES y DESTS y sus argumentos. Sólo puede especificar servidores utilizando la opción SQL.

Para mover un paquete que está almacenado en el Almacén de paquetes SSIS, utilice la siguiente sintaxis:

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

Para mover un paquete que está almacenado en el sistema de archivos, utilice la siguiente sintaxis:

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

Ejemplos de firma

Para firmar un paquete que está almacenado en una base de datos de SQL Server en una instancia local de SQL Server que utilice la autenticación de Windows, utilice la siguiente sintaxis:

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

Para obtener información acerca del certificado, utilice CertMgr. El código hash puede verse en la utilidad CertMgr si se selecciona el certificado y, a continuación, se hace clic en Ver para ver las propiedades. La ficha Detalles proporciona más información acerca del certificado. La propiedad Thumbprint sirve como valor hash, sin los espacios.

[!NOTA]

El hash utilizado en este ejemplo no es real.

Para obtener más información, vea la sección CertMgr en este artículo sobre la firma y la comprobación de código con Authenticode.

Ejemplos de cifrado

El siguiente ejemplo cifra el archivo PackageToEncrypt.dtsx basado en un archivo en el archivo EncryptedPackage.dts basado en un archivo, utilizando el cifrado de todo el paquete con una contraseña. La contraseña que se utiliza para el cifrado es EncPswd.

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