gpt4 book ai didi

php - 通过PHP使用Exchange管理单元执行Powershell脚本

转载 作者:行者123 更新时间:2023-12-03 00:04:30 25 4
gpt4 key购买 nike

我正在尝试使用PHP执行的Powershell脚本查询Exchange服务器,但它似乎无法正常工作。我尝试运行的命令是:

powershell "Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010";"Get-CASMailbox -Identity user@example.com | fl ActiveSyncEnabled"

如果我直接在命令提示符下键入该命令,它将正确执行并返回:

ActiveSyncEnabled : True



当我在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
  • 最佳答案

    您可以尝试在命令末尾添加2>&1,例如:

    $output=shell_exec('powershell "Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010";"Get-CASMailbox -Identity user@example.org | fl ActiveSyncEnabled" 2>&1');

    有时,powershell输出开头的换行符似乎阻止 shell_exec打印其他任何内容。

    关于php - 通过PHP使用Exchange管理单元执行Powershell脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10143312/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com