2015-07-21 72 views
0

我相信這和this question一樣,但沒有提供解決方案。PHP - PSExec輸出沒有顯示

我有一個使用PSEXEC做淨會話ONA配置文件服務器的查詢,並在命令行中像下面放時它正常工作:

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

它將顯示PSEXEC旗幟(從標準錯誤)然後查詢結果(從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

A面的評論 - 從CMD,如果我定位到C:\ XAMPP \ PHP和運行命令「的php.exe filename.php」,那麼它顯示標準輸出正確(無論是cmd行還是文件)b再次,不要通過網絡瀏覽器運行。 – joshnik

+0

嘗試使用xcmd - http://feldkir.ch/xcmd.htm – npocmaka

回答

0

我明白你想要讓你擁有所有的psexec.exe在$輸出變量輸出相結合stderr和標準輸出:

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

如果這是正確的只是把2> & 1日結束您的命令

這裏是有關重定向標準錯誤的詳細信息的鏈接Is there a way to redirect ONLY stderr to stdout (not combine the two) so it can be piped to other programs?

+0

這產生相同的結果,stderr(psexec橫幅)將顯示,但stdout仍然無處可見。 – joshnik