我試圖使用openfiles.exe來獲取遠程服務器上當前打開的文件的信息。我可以從命令提示符下運行該命令,即網絡服務器處於打開狀態,所以我知道它可以在Web服務器和我試圖定位的服務器之間運行。但是,當我嘗試在PHP中調用相同的命令時,我得到一個Apache錯誤日誌條目:「錯誤:目標系統必須運行Windows XP或更高版本。」 Web服務器在Xp Pro上運行,目標服務器在Windows Server 2003上。從命令提示符下,該命令完美運行,即使是在網絡上的較舊的Windows 2000服務器上,也只是當我從PHP運行它時,它似乎有一個問題。有沒有人有任何想法,爲什麼和/或如何解決這個問題?無法將遠程Openfiles.exe數據導入到PHP
,我正在使用的代碼是:
$output = shell_exec("openfiles /query /s servername");
echo $output;
$i = 0;
$c = count($output);
while ($i < $c) {
$dump = $output[$i];
echo $dump ."<br>";
$i++;
}
了shell_exec(),系統()和exec()的行爲都完全一樣,因爲它從一個批處理文件運行命令。稍微有趣的轉變是,如果我把「/ S服務器名」的一部分,它的輸出如下:
Files Opened Remotely via local share points:
---------------------------------------------
INFO: No shared open files found.
...所以就好像/ s標誌是什麼把它扔。就像我說的那樣,它可以在命令提示符下正常工作,所以我知道可執行文件能夠從目標服務器獲取信息;我只需要找出爲什麼PHP似乎與做同樣的一個問題...
這樣做,你的天才!不幸的是,我不能給你任何代表,但謝謝! – Gazhenry
啊,現在我可以 - 世界上一切都很好:D – Gazhenry