Utilitaire dtutil

L'utilitaire d'invite de commandes dtutil sert à gérer des packages SQL ServerIntegration Services. Cet utilitaire peut copier, déplacer ou supprimer un package, ou en vérifier l'existence. Ces actions peuvent être effectuées sur n'importe quel package SSIS stocké dans l'un des trois emplacements suivants : une base de données MicrosoftSQL Server, le magasin de packages SSIS, et le système de fichiers. Le type de stockage du package est identifié par les options /SQL, /FILE et /DTS.

[!REMARQUE]

Nombre des opérations qui sont réalisées par l'utilitaire dtutil peuvent également être réalisées visuellement dans SQL Server Management Studio lorsque vous êtes connecté à une instance de Integration Services. Pour plus d'informations, consultez Gestion de packages.

Les options peuvent être entrées dans n'importe quel ordre. Le caractère (« | ») est l'opérateur OR et sert à afficher les valeurs possibles. Vous devez choisir l'une des options qui sont délimitées par le caractère OR.

Toutes les options doivent commencer par une barre oblique (/) ou par un signe moins (-). Toutefois, n'insérez pas d'espace entre la barre oblique ou le signe moins et le texte de l'option ; sinon, la commande échoue.

Les arguments doivent être des chaînes entre guillemets ou ne contenir aucun espace.

Les guillemets doubles à l'intérieur des chaînes mises entre guillemets simples représentent des guillemets simples en mode échappement.

Les options et les arguments, à l'exception des mots de passe, ne respectent pas la casse.

Considérations concernant l'installation sur les ordinateurs 64 bits

Sur un ordinateur 64 bits, Integration Services installe une version 64 bits de l'utilitaire dtexec (dtexec.exe) et de l'utilitaire dtutil (dtutil.exe). Pour installer des versions 32 bits de ces outils Integration Services, vous devez sélectionner Outils clients ou Business Intelligence Development Studio lors de l'installation.

Par défaut, un ordinateur 64 bits qui dispose à la fois des versions 64 bits et 32 bits d'une invite de commandes Integration Services doit pouvoir exécuter la version 32 bits. La version 32 bits s'exécute parce que son chemin d'accès au répertoire apparaît dans la variable d'environnement PATH avant le chemin d'accès au répertoire de la version 64 bits. (En général, le chemin d'accès au répertoire 32 bits est <lecteur>:\Program Files(x86)\Microsoft SQL Server\100\DTS\Binn, tandis que le chemin d'accès au répertoire 64 bits est <lecteur>:\Program Files\Microsoft SQL Server\100\DTS\Binn.)

[!REMARQUE]

Si vous utilisez l'Agent SQL Server pour exécuter l'utilitaire, il utilise automatiquement la version 64 bits de ce dernier. L'Agent SQL Server utilise le Registre, et non la variable d'environnement PATH, pour localiser le fichier exécutable correct de l'utilitaire.

Pour vous assurer que vous exécutez la version 64 bits de l'utilitaire à l'invite de commandes, vous pouvez effectuer l'une des actions suivantes :

  • Ouvrez une fenêtre d'invite de commandes, accédez au répertoire qui contient la version 64 bits de l'utilitaire (<lecteur>: \Program Files\Microsoft SQL Server\100\DTS\Binn), puis exécutez l'utilitaire à partir de cet emplacement.

  • À l'invite de commandes, exécutez l'utilitaire en entrant le chemin d'accès complet (<lecteur>: \Program Files\Microsoft SQL Server\100\DTS\Binn) à la version 64 bits de l'utilitaire.

  • Modifiez de manière définitive l'ordre des chemins d'accès dans la variable d'environnement PATH en plaçant le chemin d'accès 64 bits (<lecteur>: \Program Files\Microsoft SQL Server\100\DTS\Binn) avant le chemin 32 bits (<lecteur>:\ Program Files(x86)\Microsoft SQL Server\100\DTS\Binn) dans la variable.

Syntaxe

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

Paramètres

Option

Description

/?

Affiche les options d'invite de commandes.

/C[opy] location;destinationPathandPackageName

Spécifie une copie sur un package SSIS. Pour utiliser ce paramètre, vous devez tout d'abord spécifier l'emplacement du package à l'aide de l'option /FI, /SQ ou /DT. Spécifiez ensuite le nom du package de destination de l'emplacement de destination. L'argument destinationPathandPackageName spécifie sur quel emplacement le package SSIS est copié. Si l'emplacement de destination location est SQL, les arguments DestUser, DestPassword et DestServer doivent être également spécifiés dans la commande.

Lorsque l'action Copy rencontre un package existant à la destination, dtutil invite l'utilisateur à confirmer la suppression du package. La réponse Y remplace le package et la réponse N termine le programme. Lorsque la commande inclut l'argument Quiet, aucune invite n'apparaît et tout package existant est remplacé.

/Dec[rypt] password

(Facultatif). Définit le mot de passe de déchiffrement qui est utilisé lorsque vous chargez un package avec chiffrement de mot de passe.

/Del[ete]

Supprime le package spécifié par l'option SQL, DTS ou FILE. Si dtutil ne peut pas supprimer le package, le programme prend fin.

/DestP[assword] password

Spécifie le mot de passe utilisé avec l'option SQL pour se connecter à une instance de SQL Server de destination avec l'authentification SQL Server. Une erreur est générée si DESTPASSWORD est spécifié dans une ligne de commande qui n'inclut pas l'option DTSUSER.

RemarqueRemarque
Lorsque c'est possible, utilisez l'authentification Windows..

/DestS[erver] server_instance

Spécifie le nom du serveur utilisé avec une action qui entraîne l'enregistrement d'une destination dans SQL Server. Cette valeur sert à identifier un serveur non local ou autre que le serveur par défaut lors de l'enregistrement d'un package SSIS. La spécification de DESTSERVER dans une ligne de commande sans action associée à SQL Server constitue une erreur. Des actions telles que SIGN SQL, COPY SQL ou MOVE SQL représentent des commandes appropriées à combiner avec cette option.

Un nom d'instance de SQL Server peut être spécifié en ajoutant à la suite du nom du serveur une barre oblique et le nom de l'instance.

/DestU[ser] username

Spécifie le nom d'utilisateur qui est employé avec les options SIGN SQL, COPY SQL et MOVE SQL pour se connecter à une instance SQL Server qui utilise l'authentification SQL Server. La spécification de DESTUSER dans une ligne de commande qui n'inclut pas l'option SIGN SQL, COPY SQL ou MOVE SQL constitue une erreur.

/Dump process ID

(Facultatif) Entraîne la suspension du processus spécifié, de l'utilitaire dtexec ou du processus dtsDebugHost.exe, et la création des fichiers de vidage de débogage, .mdmp et .tmp.

RemarqueRemarque
Pour utiliser l'option /Dump, vous devez bénéficier du droit d'utilisateur Déboguer les programmes (SeDebugPrivilege).

Pour trouver le process ID du processus que vous souhaitez suspendre, utilisez le Gestionnaire des tâches de Windows.

Par défaut, Integration Services stocke les fichiers de vidage du débogage dans le dossier <lecteur>:\Program Files\Microsoft SQL Server\100\Shared\ErrorDumps.

Pour plus d'informations sur l'utilitaire dtexec et le processus dtsDebugHost.exe, consultez Utilitaire dtexec et Génération, déploiement et débogage d'objets personnalisés.

Pour plus d'informations sur les fichiers de vidage de débogage, consultez Utilisation des fichiers de vidage de débogage.

RemarqueRemarque
Les fichiers de vidage de débogage peuvent contenir des informations sensibles. Utilisez une liste de contrôle d'accès (ACL) pour restreindre l'accès aux fichiers ou copiez les fichiers dans un dossier avec accès limité.

/DT[S] filespec

Spécifie que le package SSIS à traiter se trouve dans le magasin de packages SSIS. L'argument filespec doit inclure le chemin d'accès du dossier en commençant à la racine du magasin de packages SSIS. Par défaut, les noms des dossiers racine dans le fichier de configuration sont "MSDB" et "Système de fichiers". Les chemins d'accès qui contiennent un espace doivent être placés entre guillemets.

Si l'option DT[S] est spécifiée sur la même ligne de commande que l'une des options suivantes, une erreur DTEXEC_DTEXECERROR est retournée :

  • FILE

  • SQL

  • SOURCEUSER

  • SOURCEPASSWORD

  • SOURCESERVER

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

(Facultatif). Chiffre le package chargé avec le niveau de protection et le mot de passe spécifiés, puis l'enregistre à l'emplacement spécifié dans Path. Le ProtectionLevel détermine si un mot de passe est requis.

  • SQL - Path est le nom du package de destination.

  • FILE - Path est le chemin complet et le nom de fichier du package.

  • DTS - Cette option n'est actuellement pas prise en charge.

Options ProtectionLevel :

Niveau 0 : retire les informations sensibles.

Niveau 1 : les informations sensibles sont chiffrées en utilisant des informations d'identification de l'utilisateur local.

Niveau 2 : les informations sensibles sont chiffrées à l'aide du mot de passe requis.

Niveau 3 : le package est chiffré à l'aide du mot de passe requis.

Niveau 4 : le package est chiffré à l'aide des informations d'identification de l'utilisateur local.

Un package de niveau 5 utilise le chiffrement de stockage SQL Server.

/Ex[ists]

(Facultatif). Utilisé pour déterminer si un package existe. dtutil tente de localiser le package spécifié par l'option SQL, DTS ou FILE. Si dtutil ne peut pas localiser le package spécifié, une erreur DTEXEC_DTEXECERROR est retournée.

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

(Facultatif). Crée un nouveau dossier portant le nom que vous avez spécifié dans NewFolderName. L'emplacement du nouveau dossier est indiqué par ParentFolderPath.

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

(Facultatif). Supprime de SQL Server ou SSIS le dossier qui a été spécifié par le nom dans FolderName. L'emplacement du dossier à supprimer est indiqué par ParentFolderPath.

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

(Facultatif). Répertorie le contenu, dossiers et packages, dans un dossier sur SSIS ou SQL Server. Le paramètre facultatif FolderPath spécifie le dossier dont vous voulez afficher le contenu. Le paramètre facultatif S spécifie que vous voulez afficher la liste du contenu des sous-dossiers du dossier indiqué dans FolderPath.

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

(Facultatif). Vérifie si le dossier spécifié existe sur SSIS ou SQL Server. Le paramètre FolderPath représente le chemin et le nom de dossier à vérifier.

/Fi[le] filespec

Cette option spécifie que le package SSIS à traiter se trouve dans le système de fichiers. La valeur filespec peut être fournie sous la forme d'un chemin UNC (Universal Naming Convention) ou d'un chemin local.

Si l'option File est spécifiée sur la même ligne de commande que l'une des options suivantes, une erreur DTEXEC_DTEXECERROR est retournée :

  • DTS

  • SQL

  • SOURCEUSER

  • SOURCEPASSWORD

  • SOURCESERVER

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

(Facultatif). Renomme un dossier sur SSIS ou SQL Server. ParentFolderPath constitue l'emplacement du dossier à renommer. OldFolderName correspond au nom actuel du dossier tandis que NewFolderName représente le nouveau nom à attribuer au dossier.

/H[elp] option

Affiche une aide contextuelle qui affiche les options dtutil et décrit leur utilisation. Cet argument est facultatif. Si l'argument est inclus, le texte d'aide contient des informations détaillées sur l'option spécifiée. L'exemple suivant affiche une aide pour toutes les options :

dtutil /H

Les deux exemples suivants illustrent l'utilisation de l'option /H pour afficher une aide étendue sur une option spécifique, l'option/Q [uiet], dans cet exemple :

dtutil /Help Quiet

dtutil /H Q

/I[DRegenerate]

Crée un nouvel identificateur global unique (GUID) pour le package et met à jour la propriété de l'ID du package. Lorsqu'un package est copié, l'ID du package ne change pas ; ainsi les fichiers journaux contiennent le même GUID pour les deux packages. Cette action crée un nouveau GUID pour le package nouvellement copié, afin de le distinguer de l'original.

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

Spécifie un déplacement sur un package SSIS. Pour utiliser ce paramètre, vous devez tout d'abord spécifier l'emplacement du package à l'aide de l'option /FI, /SQ ou /DT. Ensuite, spécifiez l'action Move. Cette action nécessite deux arguments, séparés par un point-virgule :

  • L'argument de destination peut spécifier SQL, FILE ou DTS. Une destination SQL peut comporter les options DESTUSER, DESTPASSWORD et DESTSERVER.

  • L'argument pathandname spécifie l'emplacement du package : SQL utilise le chemin et le nom du package, FILE utilise un UNC ou un chemin local tandis que DTS utilise un emplacement relatif à la racine du magasin de packages SSIS. Lorsque la destination est FILE ou DTS, l'argument path n'inclut pas le nom du fichier. Il utilise plutôt le nom du package à l'emplacement spécifié comme le nom de fichier.

Lorsque l'action MOVE rencontre un package existant à la destination, dtutil vous demande de confirmer que vous voulez remplacer le package. La réponse Y remplace le package et la réponse N termine le programme. Lorsque la commande inclut l'option QUIET, aucune invite n'apparaît et tout package existant est remplacé.

/Q[uiet]

Arrête les invites de confirmation pouvant apparaître lorsqu'une commande incluant l'option COPY, MOVE ou SIGN est exécutée. Ces invites apparaissent si un package portant le même nom que le package spécifié existe déjà sur l'ordinateur de destination ou si le package spécifié est déjà signé.

/R[emark] text

Ajoute un commentaire à la ligne de commande. L'argument de commentaire est facultatif. Si le texte du commentaire inclut les espaces, il est mis entre guillemets. Vous pouvez inclure plusieurs options REM dans une ligne de commande.

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

Signe un package SSIS. Cette action utilise trois arguments requis, séparés par des point-virgules :

  • L'argument de destination peut spécifier SQL, FILE ou DTS. Une destination SQL peut comporter les options DESTUSER, DESTPASSWORD et DESTSERVER.

  • L'argument path spécifie l'emplacement du package à traiter.

  • L'argument hash spécifie un identificateur de certificat exprimé en tant que chaîne hexadécimale de longueur variable.

Pour plus d'informations, consultez Utilisation de signatures numériques avec des packages.

ImportantImportant
Lorsqu'il est configuré pour vérifier la signature du package, Integration Services vérifie seulement si la signature numérique est présente, si elle est valide et si elle provient d'une source approuvée. Integration Services ne vérifie pas si le package a été modifié.

/SourceP[assword] password

Spécifie le mot de passe utilisé avec les options SQL et SOURCEUSER pour permettre la récupération d'un package SSIS qui est stocké dans une base de données, sur une instance de SQL Server qui utilise l'authentification SQL Server. La spécification de SOURCEPASSWORD dans une ligne de commande qui n'inclut pas l'option SOURCEUSER constitue une erreur.

RemarqueRemarque
Lorsque c'est possible, utilisez l'authentification Windows.

/SourceS[erver] server_instance

Spécifie le nom du serveur qui est utilisé avec l'option SQL pour permettre l'extraction d'un package SSIS qui est stocké dans SQL Server. La spécification de SOURCESERVER dans une ligne de commande qui n'inclut pas l'option SIGN SQL, COPYSQL ou MOVESQL constitue une erreur.

Un nom d'instance de SQL Server peut être spécifié en ajoutant à la suite du nom du serveur une barre oblique et le nom de l'instance.

/SourceU[ser] username

Spécifie le nom d'utilisateur qui est employé avec l'option SOURCESERVER pour permettre la récupération, par le biais de l'authentification SQL Server, d'un package SSIS stocké dans SQL Server. La spécification de SOURCEUSER dans une ligne de commande qui n'inclut pas l'option SIGN SQL, COPY SQL ou MOVE SQL constitue une erreur.

RemarqueRemarque
Lorsque c'est possible, utilisez l'authentification Windows.

/SQ[L] package_path

Spécifie l'emplacement d'un package SSIS. Cette option indique que le package est stocké dans la base de données msdb. L'argument package_path spécifie le chemin et le nom du package SSIS. Les noms de dossier se terminent par des barres obliques inverses.

Si l'option SQL est spécifiée sur la même ligne de commande que l'une des options suivantes, une erreur DTEXEC_DTEXECERROR est retournée :

  • DTS

  • FILE

    L'option SQL peut être accompagnée de zéro ou d'une instance des options suivantes :

  • SOURCEUSER

  • SOURCEPASSWORD

  • SOURCESERVER

Si l'option SOURCEUSERNAME n'est pas incluse, l'authentification Windows permet d'accéder au package. L'option SOURCEPASSWORD est autorisée uniquement si l'option SOURCEUSER est présente. Si l'option SOURCEPASSWORD n'est pas incluse, un mot de passe vide est employé.

ImportantImportant
N'utilisez pas de mot de passe vide. Utilisez un mot de passe fort.

Codes de sortie dtutil

L'utilitaire dtutil définit un code de sortie qui vous alerte lorsque des erreurs de syntaxe sont détectées, des arguments incorrects sont employés ou des combinaisons non valides d'options sont spécifiées. Dans le cas contraire, l'utilitaire signale « L'opération s'est terminée avec succès ». Le tableau ci-dessous répertorie les valeurs que l'utilitaire dtutil peut définir lors de sa fermeture.

Valeur

Description

0

L'utilitaire s'est exécuté avec succès.

1

L'utilitaire a échoué.

4

L'utilitaire ne peut pas localiser le package demandé.

5

L'utilitaire ne peut pas charger le package demandé.

6

L'utilitaire ne peut pas résoudre la ligne de commande car elle comporte des erreurs syntaxiques ou sémantiques.

Notes

Vous ne pouvez pas utiliser des fichiers de commandes ou une redirection avec dtutil.

L'ordre des options dans la ligne de commande n'est pas significatif.

Exemples

Les exemples suivants présentent de façon détaillée des scénarios classiques d'utilisation de ligne de commande.

Exemples de copie

Pour copier, dans le magasin de packages SSIS, un package stocké dans la base de données msdb, elle-même présente sur une instance locale de SQL Server qui utilise l'authentification Windows, utilisez la syntaxe suivante :

dtutil /SQL srcPackage /COPY DTS;destFolder\destPackage 

Pour copier un package d'un emplacement sur le système de fichiers dans un autre emplacement et renommer la copie, utilisez la syntaxe suivante :

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

Pour copier un package sur le système de fichiers local dans une instance de SQL Server hébergée sur un autre ordinateur, utilisez la syntaxe suivante :

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

Dans la mesure où les options /DestU[ser] et /DestP[assword] n'ont pas été utilisées, l'utilisation de l'authentification Windows est implicite.

Pour créer un ID destiné à un package nouvellement copié, utilisez la syntaxe suivante :

dtutil /I /FILE copiedpkg.dtsx 

Pour créer un ID destiné à tous les packages d'un dossier spécifique, utilisez la syntaxe suivante :

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

Utilisez un signe de pourcentage unique (%) lorsque vous tapez la commande à partir de l'invite et utilisez un signe de pourcentage double (%%) si la commande est utilisée à l'intérieur d'un fichier de commandes.

Exemples de suppression

Pour supprimer un package qui est stocké dans la base de données msdb sur une instance de SQL Server qui utilise l'authentification Windows, utilisez la syntaxe suivante :

dtutil /SQL delPackage /DELETE

Pour supprimer un package stocké dans la base de données msdb sur une instance de SQL Server qui utilise l'authentification SQL Server, utilisez la syntaxe suivante :

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

[!REMARQUE]

Pour supprimer un package d'un serveur nommé, incluez l'option SOURCESERVER et son argument. Vous pouvez spécifier un serveur uniquement par le biais de l'option SQL.

Pour supprimer un package stocké dans le magasin des packages SSIS, utilisez la syntaxe suivante :

dtutil /DTS delPackage.dtsx /DELETE

Pour supprimer un package stocké dans le système de fichiers, utilisez la syntaxe suivante :

dtutil /FILE c:\delPackage.dtsx /DELETE

Exemples d'Exists

Pour déterminer si un package existe dans la base de données msdb sur une instance locale de SQL Server qui utilise l'authentification Windows, utilisez la syntaxe suivante :

dtutil /SQL srcPackage /EXISTS

Pour déterminer si un package existe dans la base de données msdb sur une instance locale de SQL Server qui utilise l'authentification SQL Server, utilisez la syntaxe suivante :

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

[!REMARQUE]

Pour déterminer si un package existe sur un serveur nommé, incluez l'option SOURCESERVER et son argument. Vous pouvez uniquement spécifier un serveur en utilisant l'option SQL.

Pour déterminer si un package existe dans le magasin de packages local, utilisez la syntaxe suivante :

dtutil /DTS srcPackage.dtsx /EXISTS

Pour déterminer si un package existe dans le système de fichiers local, utilisez la syntaxe suivante :

dtutil /FILE c:\srcPackage.dtsx /EXISTS

Exemples de Move

Pour déplacer un package stocké dans le magasin de packages SSIS vers la base de données msdb, elle-même située sur une instance locale de SQL Server qui utilise l'authentification Windows, utilisez la syntaxe suivante :

dtutil /DTS srcPackage.dtsx /MOVE SQL;destPackage

Pour déplacer un package stocké dans la base de données msdb sur une instance locale de SQL Server qui utilise l'authentification SQL Server vers la base de données msdb sur une autre instance locale de SQL Server qui utilise l'authentification SQL Server, utilisez la syntaxe suivante :

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

[!REMARQUE]

Pour déplacer un package d'un serveur nommé à un autre, incluez les options SOURCES et DESTS, ainsi que leurs arguments. Vous ne pouvez spécifier des serveurs qu'à l'aide de l'option SQL.

Pour déplacer un package stocké dans le magasin des packages SSIS, employez la syntaxe suivante :

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

Pour déplacer un package qui est stocké dans le système de fichiers, employez la syntaxe suivante :

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

Exemples de Sign

Pour signer un package qui est stocké dans une base de données SQL Server sur une instance locale de SQL Server qui utilise l'authentification Windows, utilisez la syntaxe suivante :

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

Pour obtenir des informations concernant votre certificat, utilisez CertMgr. Le code de hachage peut être affiché dans l'utilitaire CertMgr en sélectionnant le certificat, puis en cliquant sur Afficher pour afficher les propriétés. L'onglet Détails fournit des informations supplémentaires sur le certificat. La propriété Thumbprint est utilisée comme valeur de hachage, sans les espaces.

[!REMARQUE]

Le hachage utilisé dans l'exemple ci-dessus n'est pas un hachage véritable.

Pour plus d'informations, consultez la section « CertMgr » de l'article (en anglais) « Signing and Checking Code with Authenticode » (signature et vérification du code à l'aide d'Authenticode).

Exemples d'Encrypt

L'exemple suivant chiffre le fichier PackageToEncrypt.dtsx dans le fichier EncryptedPackage.dts en utilisant un chiffrement de package complet, avec un mot de passe. Le mot de passe qui est utilisé pour le chiffrement est EncPswd.

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