2015-07-21 63 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