dtutil, utilidad

Se aplica a: SQL Server SSIS Integration Runtime en Azure Data Factory

La utilidad del símbolo del sistema dtutil se usa para administrar los paquetes de SQL Server Integration Services. La utilidad puede copiar, mover, eliminar o comprobar la existencia de un paquete. Estas acciones se pueden realizar en cualquier paquete de SSIS almacenado en una de estas tres ubicaciones: una base de datos de Microsoft SQL Server, el almacén de paquetes de SSIS o el sistema de archivos. Si la utilidad tiene acceso a un paquete almacenado en msdb, el símbolo del sistema puede requerir un nombre de usuario y una contraseña. Si la instancia de SQL Server utiliza Autenticación de SQL Server, el símbolo del sistema requiere un nombre de usuario y una contraseña. Si falta el nombre de usuario, dtutil intenta iniciar una sesión en SQL Server con la Autenticación de Windows. El tipo de almacenamiento del paquete se identifica mediante las opciones /SQL, /FILEy /DTS .

La utilidad de línea de comandos dtutil no permite usar archivos de comandos ni redireccionamiento.

La utilidad de símbolo del sistema dtutil incluye las siguientes características:

  • Comentarios en el símbolo del sistema, que documentan la acción del símbolo del sistema y facilitan su comprensión.

  • Protección contra sobrescritura, para pedir confirmación antes de sobrescribir un paquete existente al copiar o mover paquetes.

  • Ayuda de consola, para proporcionar información sobre las opciones de comando de dtutil.

Nota

Muchas de las operaciones que realiza dtutil 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, consulte Administración de paquetes (servicio SSIS).

Las opciones se pueden escribir en cualquier orden. El carácter de barra vertical ("|") es el operador OR y se usa 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 los Servicios de integración instalan una versión de 64 bits de la utilidad dtexec (dtexec.exe) y de la utilidad dtutil (dtutil.exe). Para instalar las versiones de 32 bits de estas herramientas de Servicios de integración, seleccione Herramientas de cliente o SQL Server Data Tools (SSDT) 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 al directorio de 32 bits es <unidad>:\Archivos de programa (x86)\Microsoft SQL Server\130\DTS\Binn, mientras que la ruta de acceso al directorio de 64 bits es <unidad>:\Archivos de programa\Microsoft SQL Server\130\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\130\DTS\Binn) y, a continuación, ejecute la utilidad desde esa ubicación.

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

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

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, /SQo /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 de 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] contraseña (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] contraseña 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 .

Nota: siempre que sea posible, utilice la autenticación de Windows.
/DestS[erver] instancia_servidor Especifica el nombre de servidor que se utiliza con cualquier acción que hace que un destino se guarde en SQL Server. Se usa para identificar un servidor que no es local o que no es el predeterminado cuando se guarda un paquete de 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 SQLo MOVE SQL serían comandos adecuados para combinar con esta opción.

Un nombre de instancia de SQL Server se puede especificar agregando una barra diagonal inversa y el nombre de la instancia al nombre del servidor.
/DestU[ser] nombreDeUsuario Especifica el nombre de usuario usado con las opciones SIGN SQL, COPY SQL y MOVE SQL para conectar con una instancia de SQL Server que usa 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 SQLo MOVE SQL .
/Dump Id. del proceso (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.

Nota: Para usar 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\130\Shared\ErrorDumps.

Para obtener más información sobre la utilidad dtexec y el proceso dtsDebugHost.exe , vea dtexec Utility y Building, Deploying, and Debugging Custom Objects.

Para obtener más información sobre los archivos de volcado de depuración, vea Generating Dump Files for Package Execution.

Nota: 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 de SSIS. El argumento filespec debe incluir la ruta de acceso de la carpeta empezando en 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 "Sistema de archivos." 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 deProtectionLevel :

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 existe un paquete. 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, de 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 en 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] opción 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, /SQo /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, FILEo DTS. Un destino SQL puede incluir las opciones DESTUSER, DESTPASSWORDy DESTSERVER .

El argumento pathandname especifica la ubicación del paquete: SQL usa la ruta de acceso y el nombre del paquete, FILE usa una ruta de acceso local o UNC y DTS usa 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, MOVEo 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] texto 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 usa tres argumentos obligatorios, que están separados por punto y coma: destino, ruta y hash.

El argumento de destino puede especificar SQL, FILEo 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 más información, vea Identificar el origen de paquetes con firmas digitales.



** Importante ** cuando se configura para comprobar la firma del paquete, Integration Services solamente 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] contraseña 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 .

Nota: siempre que sea posible, utilice la autenticación de Windows.
/SourceS[erver] instancia_servidor 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 SOURCEUSER en una línea de comandos que no incluye las opciones SIGN SQL, COPY SQL o MOVE SQL.

Un nombre de instancia de SQL Server se puede especificar agregando una barra diagonal inversa y el nombre de la instancia al nombre del servidor.
/SourceU[ser] nombreDeUsuario Especifica el nombre de usuario utilizado 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 SQLo MOVE SQL .

Nota: siempre que sea posible, utilice la autenticación de Windows.
/SQ[L] ruta_paquete 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 SOURCEUSERNAME no está incluido, se utiliza la autenticación de Windows para tener acceso al paquete. Se permiteSOURCEPASSWORD solo si SOURCEUSER está presente. Si no se incluye SOURCEPASSWORD , se utiliza una contraseña en blanco.

** Importante ** 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 usan 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.

Value 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.

Observaciones

No puede usar archivos de comandos o redireccionamiento 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 mediante la Autenticación de Windows en el Almacén de paquetes de SSIS, use 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 hospedada 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 usa la Autenticación de Windows, use 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 usa la Autenticación de SQL Server, use 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. Solo 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 usa la Autenticación de Windows, use 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 usa la Autenticación de SQL Server, use 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. Solo 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 de SSIS a la base de datos msdb de una instancia local de SQL Server que usa la Autenticación de Windows, use la siguiente sintaxis:

dtutil /DTS srcPackage.dtsx /MOVE SQL;destPackage  

Para mover un paquete que está almacenado en la base de datos msdb en una instancia local de SQL Server que usa la Autenticación de SQL Server a la base de datos msdb en otra instancia local de SQL Server que usa la Autenticación de SQL Server, use la sintaxis siguiente:

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. Solo 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 usa la autenticación de Windows, utilice la siguiente sintaxis:

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

Para obtener información sobre el certificado, use 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 pestaña 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  

Consulte también

Ejecutar paquetes de Integration Services (SSIS)