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, что я не хочу тратить время на попытки обойти. Я пошел другим путем для этого, спасибо за помощь.