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 并且页面上没有出现错误,它只是一个空白屏幕。感谢您提供的任何帮助。

更新

我在命令中添加了 2>&1 并且在尝试运行时出现以下错误

systeminfo/s *ipaddress* /u *administrator* /p *password* 2>&1

错误:用户名或密码不正确。

但是,密码和用户名是正确的,因为在命令行中运行的是相同的命令。

队长

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章