Выходной поток на PowerShell для вызовов SSH

50
6

Мой PHP-скрипт (в Linux) не печатает мои значения на экране, однако выводит сообщение "Предупреждение".

например

Это мой php-код:

$stream = ssh2_exec($connection, 'powershell "c:\remoteScript.ps1" -$NotificationID "5359f76f888ddf35b889dedf"');
$string = stream_get_contents($stream);
echo "Powershell output: ". $string;

Это мой код powershell:

Write-Warning "This is a test"

И это то, что пишет PHP:

Выход Powershell: ПРЕДУПРЕЖДЕНИЕ. Вы должны обновить PowerShell до версии PowerShell 2.0.

ВОПРОС: Как я могу поймать поток, возвращенный Powershell?

спросил(а) 2014-06-07T07:44:00+04:00 5 лет, 8 месяцев назад
1
Решение
92

РЕШЕНИЕ: нам нужно сообщить ssh2_exec, ждать или блокировать, пока удаленный процесс не завершит поиск "блока" на этой странице, чтобы увидеть пример.

$stream = ssh2_exec($connection, 'powershell \'C:\scripts\remoteVeeamClientSummary.ps1\' -Client \''. $Client. '\' -NotificationID \''. $NotificationID. '\'');

stream_set_blocking($stream, true);

return stream_get_contents($stream);

и powershell:

Write-Output $result

ответил(а) 2014-06-07T15:42:00+04:00 5 лет, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема