使用Windows身份验证的PHP计划任务

使用Windows身份验证的PHP计划任务,php,sql-server,database-connection,scheduled-tasks,windows-server-2008,Php,Sql Server,Database Connection,Scheduled Tasks,Windows Server 2008,我正在开发一个托管在WindowsServer2008上的PHP应用程序。对不起,如果一些信息不清楚,但这项工作已经由另一个开发人员,我不能联系他 每周都会执行一项计划任务,以同步另一台服务器上的SQL Server数据库中的某些数据。我无权访问此另一台服务器 计划任务运行.bat文件: start C:\...\php.exe E:\...\synchro.php 但脚本无法连接到数据库: [Microsoft][SQL Server Native Client 11.0][SQL Serv

我正在开发一个托管在WindowsServer2008上的PHP应用程序。对不起,如果一些信息不清楚,但这项工作已经由另一个开发人员,我不能联系他

每周都会执行一项计划任务,以同步另一台服务器上的SQL Server数据库中的某些数据。我无权访问此另一台服务器

计划任务运行.bat文件:

start C:\...\php.exe E:\...\synchro.php
但脚本无法连接到数据库:

[Microsoft][SQL Server Native Client 11.0][SQL Server]Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'
当我从命令行运行PHP脚本时,如下所示:

php E:\...\synchro.php
$connectionInfo = array('Database'=> $database);
$conn = sqlsrv_connect($serverName, $connectionInfo);
。。。一切正常

在我的synchro.php文件中,与数据库的连接如下:

php E:\...\synchro.php
$connectionInfo = array('Database'=> $database);
$conn = sqlsrv_connect($serverName, $connectionInfo);
我认为它使用的是Windows身份验证,因为没有登录/密码

在计划任务属性中,选中以下选项:

无论用户是否登录,都要运行 不要存储密码。该任务只需访问本地 计算机资源。 在运行任务时,请使用以下用户帐户,即当前帐户

我不明白为什么它在命令行中运行PHP脚本时工作,而不是从计划任务中运行

你知道吗


提前感谢,如果我的英语不完美,请道歉。^ ^

我解决了问题:

在任务属性中,选中了“不存储密码”选项。没有这个选项,一切都会正常