Utilità dtutil
L'utilità della riga di comando dtutil viene utilizzata per gestire i pacchetti di SQL ServerIntegration Services. Utilizzare questa utility per copiare, spostare, eliminare un pacchetto oppure per verificarne l'esistenza. Queste operazioni possono essere eseguite su qualsiasi pacchetto di SSIS archiviato in un database MicrosoftSQL Server, nell'archivio pacchetti SSIS e nel file system. Il tipo di archiviazione del pacchetto è definito dalle opzioni /SQL, /FILE e /DTS.
[!NOTA]
Numerose operazioni eseguite mediante dtutil possono essere eseguite anche in modo visivo in SQL Server Management Studio durante la connessione a un'istanza di Integration Services. Per ulteriori informazioni, vedere Gestione dei pacchetti.
Le opzioni possono essere specificate in base a un ordine qualsiasi. Il carattere barra verticale ("|") equivale all'operatore OR e viene utilizzato per visualizzare i valori possibili. È necessario utilizzare una delle opzioni delimitate dalla barra verticale OR.
Tutte le opzioni devono essere precedute da una barra (/) o un segno meno (-). Non includere uno spazio tra la barra o il segno di sottrazione e il testo dell'opzione. In caso contrario, il comando non verrà eseguito.
Gli argomenti devono essere stringhe racchiuse tra parentesi oppure che non contengono spazi.
Le virgolette doppie all'interno di stringhe racchiuse tra virgolette rappresentano virgolette singole di escape.
Le opzioni e gli argomenti, escluse le password, non fanno distinzione tra maiuscole e minuscole.
Considerazioni sull'installazione in computer a 64 bit
In un computer a 64 bit con Integration Services viene installata una versione a 64 bit dell'utilità dtexec (dtexec.exe) e dell'utilità dtutil (dtutil.exe). Per installare le versioni a 32 bit di questi strumenti di Integration Services, è necessario selezionare gli strumenti client o Business Intelligence Development Studio durante l'installazione.
Per impostazione predefinita, un computer a 64 bit contenente le versioni a 64 bit e a 32 bit di un'utilità del prompt dei comandi di Integration Services installata eseguirà la versione a 32 bit al prompt dei comandi. Viene eseguita la versione a 32 bit perché il percorso della directory della versione a 32 bit compare nella variabile di ambiente PATH prima del percorso della directory della versione a 64 bit. In genere, il percorso della directory a 32 bit è <unità>:\Programmi (x86) \Microsoft SQL Server\100\DTS\Binn, mentre il percorso della directory a 64 bit è <unità>: \Programmi\Microsoft SQL Server\100\DTS\Binn.
[!NOTA]
Se si utilizza SQL Server Agent per eseguire l'utilità, verrà automaticamente utilizzata la versione a 64 bit dell'utilità. Per trovare l'eseguibile corretto per l'utilità, SQL Server Agent utilizza il Registro di sistema, non la variabile di ambiente PATH.
Per assicurarsi di eseguire la versione a 64 bit dell'utilità al prompt dei comandi, è possibile eseguire una delle azioni seguenti:
Aprire una finestra del prompt dei comandi, accedere alla directory che contiene la versione a 64 bit dell'utilità (<unità>:\Programmi\Microsoft SQL Server\100\DTS\Binn), quindi eseguire l'utilità da quel percorso.
Al prompt dei comandi, eseguire l'utilità immettendo il percorso completo (<unità>:\Programmi\Microsoft SQL Server\100\DTS\Binn) della versione a 64 bit dell'utilità.
Modificare in modo definitivo l'ordine dei percorsi nella variabile di ambiente PATH spostando il percorso della versione a 64 bit (<unità>:\Programmi\Microsoft SQL Server\100\DTS\Binn) prima del percorso della versione a 32 bit (<unità>:\Programmi(x86)\Microsoft SQL Server\100\DTS\Binn).
Sintassi
dtutil /option [value] [/option [value]]...
Parametri
Opzione |
Descrizione |
---|---|
/? |
Consente di visualizzare le opzioni del prompt dei comandi. |
/C[opy] location;destinationPathandPackageName |
Specifica un'operazione di copia su un pacchetto SSIS. Per utilizzare questo parametro, è prima necessario specificare la posizione del pacchetto tramite l'opzione /FI, /SQ o /DT e quindi indicare la posizione di destinazione e il nome del pacchetto di destinazione. L'argomento destinationPathandPackageName specifica la posizione nella quale il pacchetto SSIS viene copiato. Se la location di destinazione è SQL, è inoltre necessario specificare gli argomenti DestUser, DestPassword e DestServer nel comando. Se l'azione Copy rileva un pacchetto esistente nella posizione di destinazione, l'utilità dtutil richiede all'utente di confermare l'eliminazione del pacchetto. La risposta Y comporta la sovrascrittura del pacchetto, mentre la risposta N chiude il programma. Se il comando include l'argomento Quiet, non viene visualizzata alcuna richiesta di conferma e il pacchetto esistente viene sovrascritto. |
/Dec[rypt] password |
(Facoltativo) Imposta la password di decrittografia utilizzata durante il caricamento di un pacchetto con password crittografata. |
/Del[ete] |
Elimina il pacchetto specificato dalle opzioni SQL, DTS o FILE. Se l'utilità dtutil non è in grado di eliminare il pacchetto, il programma viene chiuso. |
/DestP[assword] password |
Specifica la password utilizzata dall'opzione SQL per connettersi a un'istanza di SQL Server di destinazione tramite l'autenticazione di SQL Server. Viene generato un errore se si specifica DESTPASSWORD in una riga di comando che non include l'opzione DTSUSER.
Nota
Se possibile, utilizzare l'autenticazione di Windows..
|
/DestS[erver] server_instance |
Specifica il nome del server utilizzato con qualsiasi azione che determina il salvataggio di una destinazione in SQL Server. Questa opzione viene utilizzata per identificare un server non locale e non predefinito durante il salvataggio di un pacchetto SSIS. Non è corretto specificare DESTSERVER in una riga di comando che non include un'azione associata a SQL Server. Azioni quali le opzioni SIGN SQL, COPY SQL o MOVE SQL sono comandi appropriati che è possibile combinare con questa opzione. Per specificare il nome di un'istanza di SQL Server, è sufficiente aggiungere una barra rovesciata e il nome dell'istanza al nome del server. |
/DestU[ser] username |
Specifica il nome utente utilizzato con le opzioni SIGN SQL, COPY SQL e MOVE SQL per connettersi a un'istanza di SQL Server che utilizza l'autenticazione di SQL Server. Non è corretto specificare DESTUSER in una riga di comando che non include le opzioni SIGN SQL, COPY SQL o MOVE SQL. |
/Dump process ID |
(Facoltativo) Provoca la pausa del processo specificato, ovvero l'utilità dtexec o il processo dtsDebugHost.exe, e la creazione dei file di dump del debug, con estensione mdmp e tmp.
Nota
Per utilizzare l'opzione /Dump, è necessario disporre del diritto utente Debug di programmi (SeDebugPrivilege).
Per individuare il valore di process ID per il processo che si desidera sospendere, utilizzare Gestione attività di Windows. Per impostazione predefinita, i file di dump del debug vengono archiviati da Integration Services nella cartella <unità>:\Programmi\Microsoft SQL Server\100\Shared\ErrorDumps. Per ulteriori informazioni sull'utilità dtexec e sul processo dtsDebugHost.exe, vedere Utilità dtexec e Creazione, distribuzione e debug di oggetti personalizzati. Per ulteriori informazioni sui file di dump del debug, vedere Utilizzo dei file di dump del debug.
Nota
I file di dump del debug possono contenere informazioni sensibili. Utilizzare un elenco di controllo di accesso (ACL) per limitare l'accesso ai file oppure copiare i file in una cartella con accesso limitato.
|
/DT[S] filespec |
Specifica che il pacchetto SSIS da utilizzare si trova nell'archivio pacchetti SSIS. L'argomento filespec deve includere il percorso della cartella, a partire dalla radice dell'archivio pacchetti SSIS. Per impostazione predefinita, i nomi delle cartelle radice nel file di configurazione sono "MSDB" e "File System". I percorsi che contengono uno spazio devono essere delimitati da virgolette doppie. Se si specifica l'opzione DT[S] nella stessa riga di comando di una delle opzioni seguenti, viene restituito un errore DTEXEC_DTEXECERROR:
|
/En[crypt] {SQL | FILE}; Path;ProtectionLevel[;password] |
(Facoltativo) Crittografa il pacchetto caricato in base alla password e al livello di protezione specificati e quindi lo salva nella posizione specificata da Path. L'argomento ProtectionLevel determina se è necessaria una password.
Opzioni ProtectionLevel: Livello 0: le informazioni riservate vengono eliminate. Livello 1: le informazioni riservate vengono crittografate utilizzando le credenziali utente locali. Livello 2: le informazioni riservate vengono crittografate utilizzando la password richiesta. Livello 3: il pacchetto viene crittografato utilizzando la password richiesta. Livello 4: il pacchetto viene crittografato utilizzando le credenziali utente locali. Livello 5: il pacchetto utilizza la crittografia di archiviazione di SQL Server. |
/Ex[ists] |
(Facoltativo) Determina se un pacchetto esiste. L'utilità dtutil cerca di individuare il pacchetto specificato dall'opzione SQL, DTS oppure FILE. Se risulta impossibile individuare il pacchetto specificato, l'utilità dtutil restituisce un errore DTEXEC_DTEXECERROR. |
/FC[reate] {SQL | DTS};ParentFolderPath;NewFolderName |
(Facoltativo) Crea una nuova cartella il cui nome è specificato in NewFolderName. La posizione della nuova cartella è indicata dall'opzione ParentFolderPath. |
/FDe[lete] {SQL | DTS}[;ParentFolderPath;FolderName] |
(Facoltativo) Elimina la cartella specificata dal nome in FolderName da SQL Server o SSIS. La posizione della cartella da eliminare è indicata dall'opzione ParentFolderPath. |
/FDi[rectory] {SQL | DTS};FolderPath[;S] |
(Facoltativo) Elenca il contenuto (cartelle e pacchetti) in una cartella di SSIS o SQL Server. Il parametro facoltativo FolderPath specifica la cartella di cui si desidera visualizzare il contenuto. Il parametro facoltativo S specifica che si desidera visualizzare l'elenco del contenuto delle sottocartelle della cartella specificata in FolderPath. |
/FE[xists ] {SQL | DTS};FolderPath |
(Facoltativo) Verifica se la cartella specificata esiste in SSIS o SQL Server. Il parametro FolderPath rappresenta il percorso e il nome della cartella da verificare. |
/Fi[le] filespec |
Questa opzione specifica che il pacchetto di SSIS da utilizzare si trova nel file system. Il valore di filespec può essere specificato sotto forma di percorso UNC (Universal Naming Convention) o di percorso locale. Se si specifica l'opzione File nella stessa riga di comando di una delle opzioni seguenti, viene restituito un errore DTEXEC_DTEXECERROR:
|
/FR[ename] {SQL | DTS} [;ParentFolderPath; OldFolderName;NewFolderName] |
(Facoltativo) Rinomina una cartella in SSIS o SQL Server. L'opzione ParentFolderPath specifica la posizione della cartella da rinominare. L'opzione OldFolderName specifica il nome corrente della cartella, mentre NewFolderName specifica il nuovo nome da assegnare alla cartella. |
/H[elp] option |
Visualizza il testo della Guida relativo alle opzioni di dtutil e al loro utilizzo. L'argomento è facoltativo. Se si specifica l'argomento, il testo della Guida include informazioni dettagliate sull'opzione specificata. Nell'esempio seguente vengono visualizzate le informazioni della Guida relative a tutte le opzioni. dtutil /H Nei due esempi seguenti viene illustrato come utilizzare l'opzione /H per visualizzare informazioni dettagliate della Guida per un'opzione specifica, ovvero l'opzione /Q [uiet] in questo esempio: dtutil /Help Quiet dtutil /H Q |
/I[DRegenerate] |
Crea un nuovo GUID per il pacchetto e aggiorna la proprietà ID del pacchetto. Quando viene copiato un pacchetto, l'ID del pacchetto rimane invariato. I file di log contengono pertanto lo stesso GUID per entrambi i pacchetti. Questa azione crea un nuovo GUID per la nuova copia del pacchetto per distinguerlo dall'originale. |
/M[ove] {SQL | File | DTS}; pathandname |
Specifica un'operazione di spostamento su un pacchetto SSIS. Per utilizzare questo parametro, è prima necessario specificare la posizione del pacchetto tramite l'opzione /FI, /SQ o /DT e quindi specificare l'azione Move. Questa azione richiede due argomenti separati da un punto e virgola:
Quando l'azione MOVE rileva un pacchetto esistente nella destinazione, dtutil richiede la conferma della sovrascrittura del pacchetto. La risposta Y comporta la sovrascrittura del pacchetto, mentre la risposta N chiude il programma. Se il comando include l'opzione QUIET, non viene visualizzata alcuna richiesta di conferma e il pacchetto esistente viene sovrascritto. |
/Q[uiet] |
Non visualizza alcuna richiesta di conferma se viene eseguito un comando che include l'opzione COPY, MOVE o SIGN. Queste richieste di conferma vengono visualizzate se un pacchetto con lo stesso nome del pacchetto specificato esiste già nel computer di destinazione oppure se il pacchetto specificato è già firmato. |
/R[emark] text |
Aggiunge un commento alla riga di comando. L'argomento è facoltativo. Se il testo del commento include spazi, è necessario racchiudere il testo tra virgolette. È possibile includere più opzioni REM in una riga di comando. |
/Si[gn] {SQL | File | DTS}; path; hash |
Firma un pacchetto di SSIS. Questa azione utilizza tre argomenti obbligatori separati da un punto e virgola:
Per ulteriori informazioni, vedere Utilizzo delle firme digitali con i pacchetti.
Importante
Se configurato per verificare la firma del pacchetto, Integration Services controlla solo se la firma digitale è presente, valida e se proviene da un'origine attendibile. Integration Services non controlla se il pacchetto è stato modificato.
|
/SourceP[assword] password |
Specifica la password utilizzata con le opzioni SQL e SOURCEUSER per abilitare il recupero di un pacchetto di SSIS archiviato in un database in un'istanza di SQL Server che utilizza l'autenticazione di SQL Server. Non è corretto specificare SOURCEPASSWORD in una riga di comando che non include l'opzione SOURCEUSER.
Nota
Se possibile, utilizzare l'autenticazione di Windows.
|
/SourceS[erver] server_instance |
Specifica il nome del server utilizzato con l'opzione SQL per abilitare il recupero di un pacchetto di SSIS archiviato in SQL Server. Non è corretto specificare SOURCESERVER in una riga di comando che non include l'opzione SIGN SQL, COPYSQL o MOVESQL. Per specificare il nome di un'istanza di SQL Server, è sufficiente aggiungere una barra rovesciata e il nome dell'istanza al nome del server. |
/SourceU[ser] username |
Specifica il nome utente utilizzato con l'opzione SOURCESERVER per abilitare il recupero di un pacchetto di SSIS archiviato in SQL Server con l'autenticazione di SQL Server. Non è corretto specificare SOURCEUSER in una riga di comando che non include le opzioni SIGN SQL, COPY SQL o MOVE SQL.
Nota
Se possibile, utilizzare l'autenticazione di Windows.
|
/SQ[L] package_path |
Specifica la posizione di un pacchetto di SSIS. Questa opzione indica che il pacchetto è archiviato nel database msdb. L'argomento package_path specifica il percorso e il nome del pacchetto di SSIS. I nomi delle cartelle terminano con una barra rovesciata. Se si specifica l'opzione SQL nella stessa riga di comando di una delle opzioni seguenti, viene restituito un errore DTEXEC_DTEXECERROR:
Se non si include SOURCEUSERNAME, per accedere al pacchetto viene utilizzata l'autenticazione di Windows. L'utilizzo di SOURCEPASSWORD è consentito solo se è presente SOURCEUSER. Se si omette l'opzione SOURCEPASSWORD, viene utilizzata una password vuota.
Importante
Non utilizzare una password vuota. Utilizzare una password complessa.
|
Codici di uscita di dtutil
dtutil imposta un codice di uscita di avviso nel caso in cui vengano rilevati errori di sintassi, siano stati utilizzati argomenti non corretti oppure siano state specificate combinazioni di opzioni non valide. In caso contrario, l'utilità visualizza il messaggio "Operazione completata". Nella tabella seguente sono elencati i valori impostati dall'utilità dtutil all'uscita.
Valore |
Descrizione |
---|---|
0 |
L'esecuzione dell'utilità ha avuto esito positivo. |
1 |
L'esecuzione dell'utilità ha avuto esito negativo. |
4 |
L'utilità non è in grado di individuare il pacchetto richiesto. |
5 |
L'utilità non è in grado di caricare il pacchetto richiesto. |
6 |
L'utilità non è in grado di risolvere la riga di comando perché contiene errori sintattici o semantici. |
Osservazioni
Non è possibile utilizzare file di comando o reindirizzamenti con dtutil.
L'ordine delle opzioni all'interno della riga di comando non è significativo.
Esempi
Negli esempi seguenti vengono illustrati in dettaglio alcuni scenari tipici di utilizzo della riga di comando.
Esempi di copia
Per copiare nell'archivio pacchetti SSIS un pacchetto archiviato nel database msdb in un'istanza locale di SQL Server tramite l'autenticazione di Windows, utilizzare la sintassi seguente:
dtutil /SQL srcPackage /COPY DTS;destFolder\destPackage
Per copiare in una posizione diversa un pacchetto da una posizione qualsiasi del file system e assegnare alla copia un nome diverso, utilizzare la sintassi seguente:
dtutil /FILE c:\myPackages\mypackage.dtsx /COPY FILE;c:\myTestPackages\mynewpackage.dtsx
Per copiare un pacchetto nel file system locale in un'istanza di SQL Server che risiede in un altro computer, utilizzare la sintassi seguente:
dtutil /FILE c:\sourcepkg.dtsx /DestServer <servername> /COPY SQL;destpkgname
Poiché non sono state utilizzate le opzioni /DestU[ser] e /DestP[assword], verrà utilizzata l'autenticazione di Windows.
Per creare un nuovo ID per un pacchetto dopo averlo copiato, utilizzare la sintassi seguente:
dtutil /I /FILE copiedpkg.dtsx
Per creare un nuovo ID per tutti i pacchetti presenti in una cartella specifica, utilizzare la sintassi seguente:
for %%f in (C:\test\SSISPackages\*.dtsx) do dtutil.exe /I /FILE %%f
Utilizzare un simbolo di percentuale singolo (%) quando si digita il comando al prompt dei comandi. Utilizzare un simbolo di percentuale doppio (%%) se si utilizza il comando in un file batch.
Esempi di eliminazione
Per eliminare un pacchetto archiviato nel database msdb in un'istanza di SQL Server che utilizza l'autenticazione di Windows, utilizzare la sintassi seguente:
dtutil /SQL delPackage /DELETE
Per eliminare un pacchetto archiviato nel database msdb in un'istanza di SQL Server che utilizza l'autenticazione di SQL Server, utilizzare la sintassi seguente:
dtutil /SQL delPackage /SOURCEUSER srcUserName /SOURCEPASSWORD #8nGs*w7F /DELETE
[!NOTA]
Per eliminare un pacchetto da un server specificato, includere l'opzione SOURCESERVER e il relativo argomento. Un server può essere specificato solo utilizzando l'opzione SQL.
Per eliminare un pacchetto archiviato nell'archivio pacchetti SSIS, utilizzare la sintassi seguente:
dtutil /DTS delPackage.dtsx /DELETE
Per eliminare un pacchetto archiviato nel file system, utilizzare la sintassi seguente:
dtutil /FILE c:\delPackage.dtsx /DELETE
Esempi di verifica dell'esistenza
Per determinare se un pacchetto esiste nel database msdb in un'istanza locale di SQL Server che utilizza l'autenticazione di Windows, utilizzare la sintassi seguente:
dtutil /SQL srcPackage /EXISTS
Per determinare se un pacchetto esiste nel database msdb in un'istanza locale di SQL Server che utilizza l'autenticazione di SQL Server, utilizzare la sintassi seguente:
dtutil SQL srcPackage /SOURCEUSER srcUserName /SOURCEPASSWORD *hY$d56b /EXISTS
[!NOTA]
Per determinare se un pacchetto esiste in un server specificato, includere l'opzione SOURCESERVER e il relativo argomento. Un server può essere specificato solo utilizzando l'opzione SQL.
Per determinare se un pacchetto esiste nell'archivio pacchetti locale, utilizzare la sintassi seguente:
dtutil /DTS srcPackage.dtsx /EXISTS
Per determinare se un pacchetto esiste nel file system locale, utilizzare la sintassi seguente:
dtutil /FILE c:\srcPackage.dtsx /EXISTS
Esempi di spostamento
Per spostare un pacchetto archiviato nell'archivio pacchetti SSIS nel database msdb in un'istanza locale di SQL Server che utilizza l'autenticazione di Windows, utilizzare la sintassi seguente:
dtutil /DTS srcPackage.dtsx /MOVE SQL;destPackage
Per spostare un pacchetto archiviato nel database msdb in un'istanza locale di SQL Server che utilizza l'autenticazione di SQL Server nel database msdb in un'istanza locale diversa di SQL Server che utilizza l'autenticazione di SQL Server, utilizzare la sintassi seguente:
dtutil /SQL srcPackage /SOURCEUSER srcUserName /SOURCEPASSWORD $Hj45jhd@X /MOVE SQL;destPackage /DESTUSER destUserName /DESTPASSWORD !38dsFH@v
[!NOTA]
Per spostare un pacchetto da un server specificato a un altro, includere le opzioni SOURCES e DESTS assieme ai relativi argomenti. Un server può essere specificato solo utilizzando l'opzione SQL.
Per spostare un pacchetto archiviato nell'archivio pacchetti SSIS, utilizzare la sintassi seguente:
dtutil /DTS srcPackage.dtsx /MOVE DTS;destPackage.dtsx
Per spostare un pacchetto archiviato nel file system, utilizzare la sintassi seguente:
dtutil /FILE c:\srcPackage.dtsx /MOVE FILE;c:\destPackage.dtsx
Esempi di firma
Per firmare un pacchetto archiviato in un database di SQL Server in un'istanza locale di SQL Server che utilizza l'autenticazione di Windows, utilizzare la sintassi seguente:
dtutil /FILE srcPackage.dtsx /SIGN FILE;destpkg.dtsx;1767832648918a9d989fdac9819873a91f919
Per individuare le informazioni sul certificato, utilizzare CertMgr. Per visualizzare il codice hash nell'utilità CertMgr, selezionare il certificato e fare clic su Visualizza per visualizzare le proprietà. Nella scheda Dettagli sono disponibili ulteriori informazioni sul certificato. La proprietà Thumbprint viene utilizzata come valore hash, rimuovendo gli spazi.
[!NOTA]
L'hash utilizzato in questo esempio non è un hash reale.
Per ulteriori informazioni, vedere la sezione relativa a CertMgr in Firma e controllo del codice con Authenticode.
Esempi di crittografia
Nell'esempio seguente viene eseguita la crittografia del pacchetto PackageToEncrypt.dtsx basato su file nel pacchetto EncryptedPackage.dts basato su file utilizzando la crittografia completa dei pacchetti e una password. La password utilizzata per la crittografia è EncPswd.
dtutil /FILE PackageToEncrypt.dtsx /ENCRYPT file;EncryptedPackage.dtsx;3;EncPswd