我試圖查詢使用由PHP執行的powershell腳本的Exchange服務器,它似乎並沒有工作。我試圖運行的命令是:通過PHP執行PowerShell腳本與Exchange管理單元通過PHP
powershell "Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010";"Get-CASMailbox -Identity [email protected] | fl ActiveSyncEnabled"
如果我鍵入直接進入命令提示符,它執行正確返回:
ActiveSyncEnabled : True
當我嘗試在PHP:
$output=shell_exec('powershell "Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010";"Get-CASMailbox -Identity [email protected] | fl ActiveSyncEnabled"');
我什麼也沒得到。 $輸出已設置但空白。如果我添加「> output.txt」到最後,我會得到一個空白的文本文件。我能夠通過PHP成功運行其他更簡單的PowerShell命令,但不是這個。 Apache服務以與通過命令提示符成功執行腳本時相同的用戶身份運行。
任何想法?
我運行:
- 的Windows Server 2008 R2 SP1 64位
- 的Apache 2.2.22 32位
- PHP 5.2.17 VC6 32位
- Exchange管理控制檯2010
出於測試目的,我將Apache服務設置爲自己運行。在PHP中,exec('whoami')返回我的域\用戶名,這是我在命令提示符下成功執行命令時使用的相同用戶名。這不應該解決任何權限問題,或者我錯過了什麼? – amay83 2012-04-13 15:16:10