我正在尝试使用 PHP 执行的 powershell 脚本查询 Exchange 服务器,但它似乎无法正常工作。我试图运行的命令是:
powershell "Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010";"Get-CASMailbox -Identity user@example.com | fl ActiveSyncEnabled"
如果我直接在命令提示符中键入它,它会正确执行并返回:
ActiveSyncEnabled : 真
当我在 PHP 中尝试时:
$output=shell_exec('powershell "Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010";"Get-CASMailbox -Identity user@example.org | fl ActiveSyncEnabled"');
我什么都得不到。$output 已设置但为空。如果我在末尾添加“> output.txt”,我会得到一个空白文本文件。我能够通过 PHP 成功运行其他更简单的 powershell 命令,但不是这个。Apache 服务以与我通过命令提示符成功执行脚本时相同的用户身份运行。
有任何想法吗?
我在跑:
- Windows Server 2008 R2 SP1 64 位
- Apache 2.2.22 32 位
- PHP 5.2.17 VC6 32 位
- Exchange 管理控制台 2010