【问题标题】:Running Powershell commands from PHP从 PHP 运行 Powershell 命令
【发布时间】: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


    【解决方案1】:

    试试这个:

    $query = shell_exec('C:\\Windows\\syswow64\\WindowsPowerShell\\v1.0\\powershell.exe -command Get-Host < NUL');
    

    【讨论】:

    • 嗨@Pakempf ..我面临同样的问题..仍然没有解决有没有办法解决这个问题
    猜你喜欢
    • 2018-02-16
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 2022-08-06
    相关资源
    最近更新 更多