Windows Server 2012 计划任务运行在命令行中运行时运行良好的程序时出错

Windows Server 2012 计划任务运行在命令行中运行时运行良好的程序时出错

我有一个命令行程序(我编写的),可以在 Windows Server 2012 上运行。它连接到另一台服务器上的 MS SQL 数据库服务器,该服务器具有与 Access 数据库的链接服务器。当我从命令提示符运行此程序时,它工作正常。

但是,当使用计划任务运行该程序时,我收到错误“链接服务器“BackOffice”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”报告错误。身份验证失败。”

计划任务设置为在我的登录名下运行,与我在命令提示符下运行程序的登录名相同,我尝试关闭和打开“以最高权限运行”,但都不起作用。

答案1

抱歉,我犯了一个错误,后来我意识到问题是因为连接字符串使用了 SQL 服务器用户名和密码,我需要将其更改为集成安全性,因此它使用 Windows 登录。

现在一切都好了。

答案2

可能是双跳问题。请查看或者此时问题和你的非常相似。

在这种情况下,他可以通过改变 CredSSP 委派来解决问题,如下所示:

在任务服务器上:Enable-WSManCredSSP Client –DelegateComputer <schedTaskHost>

在 SQL Server 上:Enable-WSManCredSSP Server

如果这没有帮助:请咨询SQL Server 事件探查器Show all events通过设置、扩展Errors and Warnings和启用来查找错误,User Error Message让它运行并再次尝试连接。阅读红色条目。

相关内容