小编Oma*_*arL的帖子

浏览器挂起执行运行Powershell的PHP

我正在尝试运行一个运行PowerShell脚本的简单PHP,如果我使用此代码,我会在命令窗口中获得结果,但我在浏览器中得到一个空数组:

<?php 
exec("powershell C:\\Inetpub\\wwwroot\\my_shell.ps1 < NUL", $output);

echo "<pre>";
print_r($output);
echo "</pre>";
?>
Run Code Online (Sandbox Code Playgroud)

我相信NUL将丢弃输出,但是它在浏览器中发现了它[这个Fourm] [1]

如果我使用这个代码,没有NUL,我会在命令窗口中得到结果,但如果我在浏览器中运行脚本将继续加载,它永远不会给我任何结果:

exec("powershell C:\\Inetpub\\wwwroot\\emsrDev\\manual_shell.ps1", $output);
Run Code Online (Sandbox Code Playgroud)

如果我这样做,结果相同:

$output = shell_exec("powershell C:\\Inetpub\\wwwroot\\emsrDev\\manual_shell.ps1");
Run Code Online (Sandbox Code Playgroud)

如果我独立运行powershell脚本运行正常:

$cmd = "cmd.exe";
&$cmd "/C echo update tasks set last='manual' where id='8'; | sqlplus vvv/www@xxx";
Run Code Online (Sandbox Code Playgroud)

所以我需要在浏览器中执行此操作并获取输出.

php powershell exec shell-exec

5
推荐指数
1
解决办法
874
查看次数

标签 统计

exec ×1

php ×1

powershell ×1

shell-exec ×1