【发布时间】:2014-03-07 00:44:44
【问题描述】:
我正在尝试从我的网络服务器上的 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;
?>
这行得通,页面源看起来与您在 Windows 中从命令提示符运行 dir c:\ 命令时所期望的完全一样。
我在 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
关于我的环境:
我在 Windows 2008 R2 SP1 标准服务器上运行 IIS 7.5。
服务器是独立的(不是域的一部分)。
我已经安装了 PHP 5.5.9,并且可以正常工作。 phpinfo() 返回预期的页面,没有任何明显的错误。
非常感谢帮助我从 php 执行 powershell 命令!
【问题讨论】:
标签: php iis powershell