繁体   English   中英

从PHP运行Powershell命令

[英]Running Powershell commands from PHP

我正在尝试从Web服务器上的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命令。

尝试这个 :

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM