командный файл — вывод PSExec не отображается

Я считаю, что это так же, как этот вопрос но решение не было предоставлено.

У меня есть запрос, который использует PSExec для выполнения сетевого сеанса на сервере профилей, и он отлично работает, когда вводится из командной строки, как показано ниже:

psexec \\profile-server -u username -p password net session

Он покажет баннер PSExec (из stderr), а затем результаты запроса (из stdout).

Тем не менее, когда я запускаю это из PHP, я вижу только канал stderr (как при отправке на экран, так и в файл), но не вижу stdout вообще. Когда я перенаправляю стандартный вывод в файл, файл становится пустым.

Вот PHP:

<?php
$uname_prof = "DOMAIN-USERNAME";
$pw_prof = "DOMAIN-PASSWORD";
$ip = "PROFILE-SERVER";

$query = "psexec.exe \\\\$ip -u $uname_prof -p $pw_prof net session";

$result = exec($query, $output);

echo implode('<br>', $output);
?>

Спасибо!

0

Решение

насколько я понимаю, вы хотите объединить stderr и stdout, чтобы у вас были все выходные данные из psexec.exe в переменной $ output:

$query = "psexec.exe \\\\$ip -u $uname_prof -p $pw_prof net session 2>&1";

если это правильно, просто поставьте 2>&1 в конце вашей команды

вот ссылка с дополнительной информацией о перенаправлении stderr Есть ли способ перенаправить ТОЛЬКО stderr на стандартный вывод (не объединяя два), чтобы он мог быть передан другим программам?

0

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

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

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