dongyou8701 2014-06-07 04:44
浏览 99
已采纳

PowerShell上的输出流用于SSH调用

My PHP script (in Linux) is not printing my values on screen, however it prints a Warning message.

e.g.

This is my php code:

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

This is my powershell code:

Write-Warning "This is a test"

And this is what PHP is writing:

Powershell output: WARNING: You should update your PowerShell to PowerShell 2.0 version.

QUESTION: How can I catch the the stream returned by Powershell?

  • 写回答

1条回答 默认 最新

  • dtl4521 2014-06-07 12:42
    关注

    SOLUTION: we need to tell ssh2_exec whether to wait/block until the remote process finishes search for "block" on this page to see an example.

    $stream = ssh2_exec($connection, 'powershell \'C:\scriptsemoteVeeamClientSummary.ps1\' -Client \''. $Client. '\' -NotificationID \''. $NotificationID. '\'');
    
    stream_set_blocking($stream, true);
    
    return stream_get_contents($stream);
    

    and powershell:

    Write-Output $result
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?