我想从我的web服务器上的php文件中运行PowerShell命令。从PHP运行PowerShell命令
这里是我的PHP代码:
<?php
$query = shell_exec('C:\\Windows\\syswow64\\WindowsPowerShell\\v1.0\\powershell.exe -command Get-Host');
echo $query;
?>
结果我得到的是HTTP错误500 - C:\ PHP \ PHP-cgi.exe文件 - FastCGI进程超出了配置活动超时 - 错误代码0x80070102
执行一个测试来验证shell_exec和php是否正常工作(我在设置环境时没有搞错)。我也试过这个PHP:
<?php
$query = shell_exec('dir c:\\');
echo $query;
?>
这个工作,页面的源代码看起来完全一样,如果你已经运行DIR C你所期望的:\命令从Windows命令提示符。
我已经看了几个其他文章在这里在stackoverflow,以及在technet上,似乎无法确定是什么导致这超时。当我从命令提示符运行相同的命令时,结果非常快。
以下是在命令提示符下执行手动相同的命令(再次你所期望的)结果:
C:\>C:\Windows\syswow64\WindowsPowerShell\v1.0\powershell.exe -command Get-Host
Name : ConsoleHost
Version : 2.0
InstanceId : 9a24a372-f0a3-4a79-b9fd-1e180e9a8069
UI : System.Management.Automation.Internal.Host.InternalHostUserI
nterface
CurrentCulture : en-US
CurrentUICulture : en-US
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace
了一下我的环境:
我运行IIS 7.5在Windows 2008 R2 SP1标准服务器上。
服务器是独立的(不属于域的一部分)。
我有PHP 5.5.9安装,并工作。 phpinfo()返回期望的页面,没有任何明显的错误。
任何帮助让我跟踪从执行PowerShell命令从PHP非常感谢!