php 函数“exec”不适用于窗口的 systeminfo 命令

我试图让网站在用户导航到该页面时向用户提供有关某台计算机的信息。我正在使用 php 7.1。这不是面向外的,并且在不重要的服务器上,因此安全性不是我现在关心的问题。


我已经确保 php.ini 中的一些超时设置被扩展,但我可能错过了一些东西。我已经直接在服务器的命令行中尝试过这个命令,它已经奏效了。我已经使用 exec 函数尝试了其他命令,并且它们都有效。我已经打开 display_errors 并且页面上没有出现错误,它只是一个空白屏幕。页面加载完成得非常快:不到一秒钟。


这就是我正在努力工作的页面上的全部内容


<?php 

$dCommand1 = 'systeminfo/s *ipaddress* /u *administrator* /p *password* > %TEMP%\\sysinfo.txt';

$dCommand2 = 'type "%TEMP%\\sysinfo.txt"';

$dCommand3 = 'del "%TEMP%\\sysinfo.txt"';

exec($dCommand1);


$dOutput = array();


exec($dCommand2, $dOutput);

foreach($dOutput as &$dRow){

    echo $dRow;

    echo '<br>';

}


exec($dCommand3);


?>

什么在 php 中起作用:


echo exec('ipconfig');

echo exec('whoami');

什么在 cmd 中起作用:


systeminfo/s *ipaddress* /u *administrator* /p *password* > %TEMP%\\sysinfo.txt

type "%TEMP%\\sysinfo.txt"

del "%TEMP%\\sysinfo.txt"

我已经打开 display_errors 并且页面上没有出现错误,它只是一个空白屏幕。感谢您提供的任何帮助。




守着星空守着你
浏览 173回答 2
2回答

慕桂英3389331

解决方案是使用域凭据。不知何故,在服务器的命令行中,我可以使用我试图从中获取信息的计算机上的本地凭据,但在 php 页面上,我必须使用域凭据来访问计算机。

烙印99

无需将输出重定向到文件。摆脱重定向,直接读取结果。$dCommand1 = 'systeminfo/s *ipaddress* /u *administrator* /p *password*';exec($dCommand1, $dOutput);foreach ($dOutput as $dRow) { // no need for &&nbsp; &nbsp; echo "$dRow<br>";}
打开App,查看更多内容
随时随地看视频慕课网APP