html — php серверная команда schtasks.exe

Я новичок на сайте в качестве постера, но уже давно использую его, когда исследую новые методы для своих проектов. Кажется, я просто не могу найти информацию, которая мне нужна для моего текущего проекта, скорее всего потому, что я плохо выполняю свои поиски. Я надеюсь, что вы, ребята, сможете указать мне направление, в котором я смогу получить ответ.

Проблема:
Я работаю в компании с пользователями по всему миру и должен помнить, что наши глобальные пользователи не могут видеть все доступные данные. Имея это в виду, у меня есть система, в которой настраиваются некоторые запланированные задачи, которые были настроены некоторыми из наших глобальных пользователей, а затем система была доступна только пользователям из США. После того, как это ограничение было наложено на систему, эти запланированные задачи становятся недоступными для пользователей и, к сожалению, они должны оставаться в этой системе.

Для решения этой задачи мне было поручено настроить внутреннее веб-приложение, которое будет доступно нашим глобальным пользователям, которое будет отображать информацию о запланированных задачах и позволит пользователям запускать любые задачи вручную, если в этом есть необходимость. Имейте в виду, что когда пользователь запускает задачу, команда должна поступить с сервера, на котором размещен сайт, поскольку она будет использовать учетную запись пользователя (учетную запись домена), которая имеет доступ администратора к серверу и может выполнять задачу как глобальную. пользователи не имеют доступа к этой системе.

У меня в настоящее время большая часть этого выполнена. У меня есть хорошая страница PHP, проходит через массив, заполненный именами запланированных задач, запускает команду SCHTASKS.EXE (с необходимыми аргументами и переключателями) на сервере и получает информацию для каждой задачи. Затем он сортирует данные и отображает необходимые данные в формате таблицы для просмотра пользователем. У меня также есть базовая кнопка, создаваемая для каждой задачи в каждой строке таблицы.

Вот проблема, в которой я работаю. Как мне настроить эту кнопку и страницу PHP, чтобы сообщить серверу запустить команду SCHTASKS.exe / RUN (опять же, с сервера, а не с системы пользователей), чтобы получить задачу бежать?

Это возможно? Я работал над этим последние несколько часов, чтобы зайти в тупик?

Я довольно новичок в PHP, поэтому я учился на ходу.

Извините за длинное объяснение, я просто хотел прояснить, что я пытаюсь сделать здесь. Надеюсь, я ничего не объяснил.

Вот код, который у меня есть. Нужно ли использовать AJAX или что-то еще?

<?php
//Create colors for table
$success_color ="#E68080";         //row color when machine is occupied (light green)
$failed_color="#91FF6C";   //row color when machine is available (light red)

//Declare array with task names
$tasknames = array("\"TASK1\"", "\"TASK2\"");
//Declare array with TASK log network share
$tasklogs = array("\\\Task1Log\share", "\\\Task2Log\share");
//count the number in array
$numberoftasks = count($tasknames);

//Create table and column headers
echo '<table border ="1" cellpadding="5" cellspacing="0" style="border: 1px solid #c0c0c0;">';
echo '<tr>';
echo '<th>Task Name</th>';
echo '<th>Status</th>';
echo '<th>Next Run Time</th>';
echo '<th>Last Run Time</th>';
echo '<th>Last Result</th>';
echo '<th>Trigger</th>';
echo '<th>Run As User</th>';
echo '<th>Run Task</th>';
echo '<th>Logs</th>';
echo '</tr>';
echo '<br><br>';

//Loop to create the rest of the table rows with Task information retrieved from system
for($x = 0; $x < $numberoftasks; $x++){
$status = "0";
$schtasksinst = "schtasks.exe /S SystemName /Query /TN $tasknames[$x] /FO LIST /V";
$runtaskinst = "schtasks.exe /S SystemName /Run /TN $tasknames[$x]";
exec($schtasksinst, $output);

//If statement to assign the appropriate color to a row based on if the task run successfully or had issues
if ($status = (substr($output[8], 38))){
$color = $success_color;
} else {
$color = $failed_color;
}

//Fill table with Task info
echo '<tr style="background: '.$color.';">';
echo "<td>".substr($output[3], 39)."</td>";
echo "<td>".substr($output[5],8)."</td>";
echo "<td>".substr($output[4], 15)."</td>";
echo "<td>".substr($output[7], 15)."</td>";
echo "<td>0x".substr($output[8], 38)."</td>";
echo "<td>".substr($output[20], 15)."</td>";
echo "<td>".substr($output[16], 13)."</td>";
echo "<td><button type=\"button\" onclick=\"???????????????????????????????\">Run Task</button></td>";
echo "<td>".$tasklogs[$x]."</td>";
unset($schtasksinst);
unset($runtaskinst);
unset($output);
}

\\End table as all info has been displayed
echo '</table>';
echo '<br><br>';

\\Create basic table as color legend
echo "<H2>Color Legend</H2>";
echo '<table border ="1" cellpadding="5" cellspacing="0" style="border: 1px solid #c0c0c0;">';
echo '<tr>';
echo '<td>Scheduled Task is either running or encountered an issue on it\'s last run:</th>';
echo '<td BGCOLOR=' . $success_color . '>' . str_repeat('&nbsp;', 30) . '</th>';
echo '</tr>';
echo '<tr>';
echo '<td>Scheduled task ran with no issues:</th>';
echo '<td BGCOLOR=' . $failed_color . '>' . str_repeat('&nbsp;', 30) . '</th>';
echo '</tr>';
echo '</table>';

?>

0

Решение

Вот как я решил эту проблему. Теперь я могу заставить кнопку работать как положено.

<form action="runtask.php" method="post">

<?php
//Create colors for table
$success_color ="#E68080";         //row color when machine is occupied (light green)
$failed_color="#91FF6C";   //row color when machine is available (light red)

//Declare array with task names
$tasknames = array("\"TASK1\"", "\"TASK2\"");
//Declare array with TASK log network share
$tasklogs = array("\\\Task1Log\share", "\\\Task2Log\share");
//count the number in array
$numberoftasks = count($tasknames);

//Create table and column headers
echo '<table border ="1" cellpadding="5" cellspacing="0" style="border: 1px solid #c0c0c0;">';
echo '<tr>';
echo '<th>Task Name</th>';
echo '<th>Status</th>';
echo '<th>Next Run Time</th>';
echo '<th>Last Run Time</th>';
echo '<th>Last Result</th>';
echo '<th>Trigger</th>';
echo '<th>Run As User</th>';
echo '<th>Run Task</th>';
echo '<th>Logs</th>';
echo '</tr>';
echo '<br><br>';

//Loop to create the rest of the table rows with Task information retrieved from system
for($x = 0; $x < $numberoftasks; $x++){
$status = "0";
$schtasksinst = "schtasks.exe /S SystemName /Query /TN $tasknames[$x] /FO LIST /V";
$runtaskinst = "schtasks.exe /S SystemName /Run /TN $tasknames[$x]";
exec($schtasksinst, $output);

//If statement to assign the appropriate color to a row based on if the task run successfully or had issues
if ($status = (substr($output[8], 38))){
$color = $success_color;
} else {
$color = $failed_color;
}

//Fill table with Task info
echo '<tr style="background: '.$color.';">';
echo "<td>".substr($output[3], 39)."</td>";
echo "<td>".substr($output[5],8)."</td>";
echo "<td>".substr($output[4], 15)."</td>";
echo "<td>".substr($output[7], 15)."</td>";
echo "<td>0x".substr($output[8], 38)."</td>";
echo "<td>".substr($output[20], 15)."</td>";
echo "<td>".substr($output[16], 13)."</td>";
echo "<td><input type=submit name=runtask value=\"Run $tasknames[$x]\"></td>";
echo "<td>".$tasklogs[$x]."</td>";
unset($schtasksinst);
unset($runtaskinst);
unset($output);
}

\\End table as all info has been displayed
echo '</table>';
echo '<br><br>';

\\Create basic table as color legend
echo "<H2>Color Legend</H2>";
echo '<table border ="1" cellpadding="5" cellspacing="0" style="border: 1px solid #c0c0c0;">';
echo '<tr>';
echo '<td>Scheduled Task is either running or encountered an issue on it\'s last run:</th>';
echo '<td BGCOLOR=' . $success_color . '>' . str_repeat('&nbsp;', 30) . '</th>';
echo '</tr>';
echo '<tr>';
echo '<td>Scheduled task ran with no issues:</th>';
echo '<td BGCOLOR=' . $failed_color . '>' . str_repeat('&nbsp;', 30) . '</th>';
echo '</tr>';
echo '</table>';

?>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]