我试图查询使用由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