允许Excel服务器代理的Excel权限

我有一个SSIS包部署到SQL 2012年。我可以运行包,如果我做一个右键单击和执行,但不是如果我通过SQL Server代理作业运行它。 SSIS包使用Excel interop对文件进行一些更改并保存。 我的猜测是,SQL代理帐户不允许做这样的操作(打开Excel应用程序)。 我为admin创build了一个代理,并select要作为代理运行的软件包。 这也是行不通的。 任何人都知道如何实现我想要的? TYA

尝试这个:

创build以下文件夹:

C:\Windows\SysWOW64\config\systemprofile\Desktop C:\Windows\System32\config\systemprofile\Desktop 

说明:

Microsoft不build议通过脚本自动化Excel或其他Office应用程序,因为Office应用程序被devise为由人类使用,而不是由机器使用。

因此,Excel在运行应用程序时期望用户configuration文件存在。 SQL Server代理服务不使用现有的用户configuration文件(即使在代理用户下启动时)。 当Excel自动化并通过代理启动时,Excel正在查找该用户configuration文件信息和桌面文件夹。

代理使用systemprofile文件夹作为其“用户”目录。

出于某种原因,如果Desktop文件夹不存在于systemprofile文件夹中,则自动化的Excel进程将失败。 因此,为32位和64位系统configuration文件创build一个桌面文件夹将解决您的问题。

使用使用Excel Interop的脚本任务,我遇到了SSIS包的这个问题; 该程序包将在BIDS中执行(因为这是在我的用户帐户下执行的),但是当同一个程序包作为SQL Agent作业步骤运行时,它将引发错误(由于在SQL Agent帐户或“本地系统” )。

我收到的这个问题的错误是:

 System.UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005. 

为了解决这个问题,我为一个已知的用户帐户创build了一个凭据 (SSMS> Security> Credentials)(最好为了生产目的创build一个拥有最小权限的用户帐户)。

然后,我创build了映射到上面创build的凭据的代理 (SSMS> SQL Server代理>代理> SSIS包执行),确保在“活动到以下子系统”列表下select“SQL Server Integration Services包”。

最后,打开代理作业的属性,select“步骤”,编辑执行有问题的SSIS包的步骤,然后select我在“运行方式:”下创build的代理。

jour SSIs包是否使用共享文件夹? 有时SQL代理正在运行,无权访问networking(本地系统),因此可能会出现问题。

方法来检查,如果这是问题设置代理运行在您的帐户,所以如果它的作品,你可以创build新的帐户,并给它最小的权利…