Ich versuche, einen Exchange-Server mit einem Powershell-Skript abzufragen, das von PHP ausgeführt wird, und es scheint nicht zu funktionieren. Der Befehl, den ich versucht bin zu laufen ist:Ausführen eines Powershell-Skripts mit Exchange-Snap-In über PHP
powershell "Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010";"Get-CASMailbox -Identity [email protected] | fl ActiveSyncEnabled"
Wenn ich das direkt in die Eingabeaufforderung ein, führt sie richtig und kehrt:
ActiveSyncEnabled : True
Wenn ich versuche es in PHP:
$output=shell_exec('powershell "Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010";"Get-CASMailbox -Identity [email protected] | fl ActiveSyncEnabled"');
Ich bekomme nichts. $ output ist gesetzt, aber leer. Wenn ich am Ende "> output.txt" hinzufüge, erhalte ich eine leere Textdatei. Ich bin in der Lage, andere, einfachere Powershell-Befehle erfolgreich über PHP auszuführen, aber nicht diesen. Der Apache-Dienst läuft als derselbe Benutzer wie wenn ich das Skript über die Eingabeaufforderung erfolgreich ausgeführt habe.
Irgendwelche Ideen?
Ich bin mit:
- Windows Server 2008 R2 SP1 64-Bit-
- Apache 2.2.22 32-bit
- PHP 5.2.17 VC6 32-Bit-
- Exchange-Verwaltungskonsole 2010
Zu Testzwecken habe ich den Apache-Dienst so eingerichtet, dass er wie ich selbst läuft. In PHP gibt exec ('whoami') meine Domäne \ Benutzername zurück, den gleichen Benutzernamen, den ich verwendet habe, als ich den Befehl an der Eingabeaufforderung erfolgreich ausgeführt habe. Sollte das Konto keine Berechtigungsprobleme haben, oder fehle ich etwas? – amay83