PHP Shell_exec - Powershell не работает

Я пытаюсь запустить это:

shell_exec("powershell -File C:\inetpub\wwwroot\altirisinstall\startinstall.ps1 $computername > /dev/null &");

Он работает нормально, пока я удаляю:

/ dev / null &

Однако это заставляет веб-сайт приостанавливать работу и ждать завершения сценария. Когда я это включаю, скрипт никогда не запускается.

Я также попробовал это, и это останавливает запуск ps1:

/ dev / null 2> & 1 &

Редактировать: мне нужен способ, чтобы мой php запускал скрипт powershell на сервере Windows и не ждал ответа. Ожидание вызывает зависание моего веб-сайта и не позволяет пользователям запускать новую команду. Я исследовал и нашел вышеупомянутые решения, но кто-то указал, что они предназначены для серверов 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:\inetpub\wwwroot\altirisinstall\startinstall.ps1 $computername");
    sleep(5);

    header("Refresh:0");
}
?>

1 ответ

Для этой проблемы нет решения. Это мера безопасности в IIS, что я не хочу тратить время на попытки обойти. Я пошел другим путем для этого, спасибо за помощь.

Другие вопросы по тегам