从php执行PowerShell脚本

时间:2018-03-06 05:51:57

标签: php powershell

我想使用php执行PowerShell脚本。使用cmd它工作正常,但它不能使用PHP和我使用wamp服务器。

我的代码如下:

<?php
ini_set('max_execution_time', 300);
//$output=shell_exec('cd C:\AWS\Distributed-setup-3');
//$output=shell_exec('cd');
$output=shell_exec('powershell.exe -command C:\AWS\Distributed-setup-3\AWSExecuter.ps1');
echo $output;
?>

这里我使用Input.yaml文件来获取输入错误,输入文件中的问题&#39; Input.yaml&#39;。但对于手动执行,我使用相同的输入文件。在那里它不会给出任何错误。

任何人都可以帮助我吗?我三天以来一直在努力。我正在研究如何调试这个。

2 个答案:

答案 0 :(得分:1)

我在PowerShell脚本中调用的python代码存在问题,我已经解决了它。现在它工作正常。

在php中我使用过这样的,

<?php
        ini_set('max_execution_time', 300);
        $output= shell_exec('powershell -command C:/AWS/Distributed-setup-3/AWSExecuter.ps1');
        echo( '<pre>' );
        echo( $output );
        echo( '</pre>' );          
 ?>

答案 1 :(得分:0)

只需将$ psDIR更改为PowerShell路径(例如%SystemRoot%\ system32 \ WindowsPowerShell \ v2.0)

<?php
ini_set('max_execution_time', 300);
$psPath = "powershell.exe";
$psDIR = "PathToPowrshell";
$psScript = "C:\AWS\Distributed-setup-3\AWSExecuter.ps1";
$runScript = $psDIR. $psScript;
$runCMD = $psPath." ".$runScript;
$output= shell_exec($runCMD);
echo( '<pre>' );
echo( $output );
echo( '</pre>' );
?>