0

我正在致力於託管在Windows Server 2008上的PHP應用程序。很抱歉,如果某些信息不清楚,但此項工作已由其他開發人員完成,並且我無法與他聯繫。使用Windows身份驗證的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 

......一切正常。

在我synchro.php文件,到數據庫的連接是由這樣的:

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

我認爲這是使用Windows身份驗證,因爲沒有登錄/密碼。

在計劃任務性質,下列選項檢查:

  • 「運行用戶是否登錄或不」
  • 「不要儲存密碼的任務將只能訪問到本地。 電腦資源。「

並且在「運行任務時使用以下用戶帳戶」中有當前帳戶。

我不明白爲什麼它在命令行中運行PHP腳本,但不是從計劃任務運行。

你有什麼想法嗎?

在此先感謝(和抱歉,如果我的英文不是很好,^ _ ^)

回答

0

我解決了這個問題:

在任務屬性,選擇「不存儲密碼」進行了調查。沒有這個選項,一切正常。