rundll 的 PHP 执行

Posted

技术标签:

【中文标题】rundll 的 PHP 执行【英文标题】:PHP execution for rundll 【发布时间】:2013-12-28 10:02:02 【问题描述】:

有人知道如何在 php 中执行以下代码吗?

 <?php
  $output = "rundll32 printui.dll PrintUIEntry /in /n \\omgb-omga-1\printer-hr";
 ?>

运行上面没有添加网络打印机...

我在 php 中的语法是否正确?因为当我将命令粘贴到命令提示符时,我可以添加打印机。

【问题讨论】:

【参考方案1】:

使用exec()(注意可能需要添加rundll32.exe的完整路径):

$output = array();
exec("C:\\Windows\\system32\\rundll32.exe PrintUIEntry /in /n \\\\omgb-omga-1\\printer-hr", $output);
var_dump($output);

根据this answer,反斜杠应该被转义(我在我的例子中做了),但我不确定命令的参数是否需要它。

注意exec()只返回命令返回的最后一行;要获得整个输出,您需要使用一个单独的数组(此处为 $output),该数组将填充命令的输出。

【讨论】:

我尝试了你所说的,这是我的 php 代码中现在的内容 我仍然没有看到它被添加。我在页面上看不到任何错误 我认为当我运行我在第一次回复中给出的代码时,它只是添加了打印机并且在命令提示符下没有得到任何输出。所以我按照你所说的方式执行,这是我在网页中得到的:“array (size=0) empty”这有意义吗? “c:\windows\system32\rundll32 printui.dll PrintUIEntry /in /n \\omgb-omga-1\printer-hr” 添加打印机没有任何问题...这是我想在按钮上执行的相同命令按...但这似乎不起作用...如果我有什么问题请告诉我

以上是关于rundll 的 PHP 执行的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Rundll32 执行 DLL 函数?

text 可以由mshta或rundll32执行的Scriplet,用于执行任意代码

rundll32执行js代码&Win32/Poweeliks

可疑进程描述----rundll32.exe进程详述

Windows下载执行命令大全

Windows下载执行命令大全