PHP 具有 Windows 身份验证的计划任务

PHP Scheduled Task with Windows Authentication

我正在开发托管在 Windows Server 2008 上的 PHP 应用程序。抱歉,如果某些信息不清楚,但这项工作是由其他开发人员完成的,我无法联系他。

每周都会执行一个计划任务,以从另一台服务器上的 SQL 服务器数据库同步一些数据(我无权访问另一台服务器)。

计划任务运行是一个.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

...一切正常。

在我的 synchro.php 文件中,与数据库的连接是这样的:

$connectionInfo = array('Database'=> $database);
$conn = sqlsrv_connect($serverName, $connectionInfo);

我认为它正在使用 Windows 身份验证,因为没有 login/password。

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

并且在"When running the task, use the following user account"中有当前账户。

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

你有什么想法吗?

提前致谢(如果我的英语不完美,请见谅^_^)

我解决了问题:

在任务属性中,选中了选项 "Do not store password"。没有这个选项,一切正常。