簡體   English   中英

手動完成后,批處理文件將成功執行SSIS包,但使用Windows Task Scheduler執行該批處理文件時將失敗

[英]Batch file executes SSIS package successfully when done manually, but fails when it's executed with Windows Task Scheduler

我有一個執行SSIS包的批處理文件,此SSIS包從服務器(z:單元)中的Access數據庫獲取數據。 然后將數據傳遞到SQL Server。 當我手動(雙擊)或在命令行上執行批處理文件時,它運行正常。

但是我希望在Windows 7的“任務計划程序”中計划此批處理文件。我可以創建任務,但是當它與任務計划程序一起執行時會失敗。 我的批處理文件如下:

DTEXEC /FILE "F:\Projects\Complains\SSIS Complains\Get_Complains.dtsx" /DECRYPT XXXXX /CHECKPOINTING OFF  /REPORTING EWCDI >F:\Logs\Log_Get_Complains.txt

我收到的錯誤消息如下:

Microsoft(R)SQL Server版本10.0.1600.22第32位實用程序版權所有(C)Microsoft Corp 1984-2005。 Reservados todos los derechos。

Iniciado:09:37:29 am信息:2014-06-06 09:37:29.48 C¢digo:0x4004300A Origen:Tarea Flujo de datos SSIS.Pipeline
描述:有效期的最初設定。 錯誤信息:2014-06-06 09:37:30.25 C¢digo:0xC0047062
Origen:Tarea Flujo de datos Origen de ADO NET 1 [1433]
描述:System.Data.Odbc.OdbcException:錯誤[HY024] [Microsoft] [Controlador ODBC Microsoft Access]'(desconocido)',無需任何授權。 修訂后的修訂版和修訂版的修訂版。 錯誤[IM006] [Microsoft] [ODBC的管理員]錯誤SQLSetConnectAttr del controlador的錯誤[HY024] [Microsoft] [Controlador ODBC Microsoft Access]'(desconocido)'沒有權限要求。 修訂后的修訂版和修訂版的修訂版。 zh_cn System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle,RetCode retcode)zh-CN System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection連接,OdbcConnectionString構造,OdbcEnvironmentHandle環境處理)en System.Data.Odbc.OdbcConnection( OdbcConnection externalConnection,OdbcConnectionString connectionOptions)zh-cn System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions選項,對象poolGroupProviderInfo,DbConnectionPool池,DbConnection owningObject)en.System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection,DbConnectionPoolGroup池) .ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)zh_cn System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection externalConnection,DbConnectionFactory connectionFactory)zh_cn System.Data.Odbc.OdbcConnection.Open()zh_cn Microsoft.SqlServer.Dts.Runtime.ManagedHelper。 GetManagedConnection(String assem blyQualifiedName,字符串connStr,對象事務)zh-CN Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSConnectionManager100.AcquireConnection(Object pTransaction)zh-CN Microsoft.SqlServer.Dts.Pipeline.DataReaderSourceAdapter.AcquireConnections(對象事務)zh-CN.Microsoft.SqlServer.Dts.Pipeline .ManagedComponentHost.HostAcquireConnections(IDTSManagedComponentWrapper100包裝器,對象事務)發生錯誤錯誤:2014-06-06 09:37:30.25 C¢digo:0xC0047017 Origen:Tarea Flujo de datos SSIS.Pipeline Descripci¢n:Error en lavalida¢¢n組件“ Origen de ADO NET 1”(1433); 發生錯誤,錯誤0x80131937。 錯誤的錯誤錯誤:2014-06-06 09:37:30.25 C¢digo:0xC004700C起源:Tarea Flujo de datos SSIS.Pipeline
描述:無效的有效組件。 錯誤的錯誤錯誤:2014-06-06 09:37:30.25 Cdigo:0xC0024107來源:Tarea Flujo de datos描述:Se produjeron errores alvalidar la tarea。 進一步的錯誤DTExec:逐個展開DTSER_FAILURE(1)。 Iniciado:09:37:29 am Finalizado:09:37:30 am Transcurrido:1.077 segundos

我知道它是西班牙語,但我希望這不會成為問題。

我知道該錯誤幾乎可以自己解釋,它無法找到或連接到Access ODBC,因為它無法根據第一個錯誤代碼對其進行驗證:

0x4004300A

我已經在Microsoft支持頁面上檢查了此錯誤代碼,並將ValidateExternalMetadata屬性更改為False,但它沒有執行任何操作。 其他錯誤則是從第一個錯誤衍生而來的。

我已經檢查了ODBC數據源管理員(odbcad32.exe)中的ODBC,以查看驅動程序是否在System DSN中,並且它們是否存在,用戶DSN中沒有驅動程序,我還檢查了它們是否為32位和它們是,這里的所有東西都運行在ant 32上。因此,據我了解,應該沒有任何權限問題,因為所有ODBC都在System DSN中。

在Task Scheduler中,我創建了以SYSTEM身份運行的任務,我們在Scheduler中的所有任務均以SYSTEM身份運行,並賦予了它最高的特權。

因此,如果有人可以幫助我,我將不勝感激。

我敢打賭,您依賴於連接管理器中的Windows憑據,手動運行時可用,但任務計划程序運行時不可用。

將程序包部署到SQL Server並運行SQL Job可能會得到更好的服務,我不確定是否有更簡單的解決方法,而且我認為即使那樣,您仍需要創建SQL Server Agent Proxy

在這里找到了逐步的指南: 如何安排SSIS程序包以除SQL Agent Service Account之外的其他身份運行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM