Я пытаюсь запустить это:PHP shell_exec - Powershell не работает
shell_exec("powershell -File C:\inetpub\wwwroot\altirisinstall\startinstall.ps1 $computername > /dev/null &");
Он отлично работает до тех пор, как я удалить:
/Dev/нуль &
Однако , что заставляет веб-сайт приостанавливаться и ждать завершения скрипта. Когда у меня есть это, сценарий никогда не запускается.
Я также попытался это и останавливает PS1 от работы, а также:
/Dev/нуль 2>
Edit: Мне нужен способ, чтобы мой 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");
}
?>
В Windows нет такой вещи, как '/ dev/null'. – Pete
А, ну что ж, к сожалению. Это объясняет, почему это не работает. – Jack
'> NUL' должен быть одинаковым в окнах – apokryfos