PHP Shell_exeC语言 Powershell not running



我正在尝试运行这个:

shell_exec("powershell -File C:inetpubwwwrootaltirisinstallstartinstall.ps1 $computername > /dev/null &");

只要我删除:

/dev/null,

但是,这会使网站暂停并等待脚本完成。当我包含它时,脚本永远不会运行。

我也试过了,它也阻止了ps1的运行:

/dev/null 2>&1 &

编辑:我需要一种方法,让我的php在windows服务器上运行一个powershell脚本,而不是等待响应。等待导致我的网站挂起,并阻止用户运行新的命令。我研究并找到了上面的解决方案,但是有人指出那些是linux服务器的。有没有其他的方法来执行我的powershell脚本,而不是等待响应?

Edit2:我现在根本无法启动powershell, sql命令运行良好,页面刷新,但powershell从未运行,下面是代码:

<?php
if(isset($_POST['Submit'])) {
    $connectionInfo = array( "Database"=>"database", "UID"=>"username", "PWD"=>"password");
    $conn = sqlsrv_connect( "server", $connectionInfo);
    $params = array();
    $username = $_SERVER['AUTH_USER'];
    $computername = $_POST['CName'];
    $time = date("m/d - g:i a");
    $sql2 = "INSERT INTO dbo.Installs (Hostname, Status, Username, Time) VALUES (?, ?, ?, ?)";
    $var = array($computername, "InProgress", $username, $time);
    sqlsrv_query($conn, $sql2, $var);
    sqlsrv_close($conn);
    shell_exec("powershell.exe -File C:inetpubwwwrootaltirisinstallstartinstall.ps1 $computername");
    sleep(5);
    header("Refresh:0");
}
?>

这个问题没有解决办法。这是IIS中的一项安全措施,我不想花时间尝试绕过它。我已经走了一条不同的路线,谢谢所有的帮助。

最新更新