Выполнение PHP для rundll

У кого-нибудь есть идеи о том, как я могу выполнить приведенный ниже код в 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);

Согласно этому ответу следует избегать обратной косой черты (что я и сделал в моем примере), но я не уверен, нужна ли она для аргументов команды.

Обратите внимание, что exec() возвращает только последнюю строку, возвращенную командой; чтобы получить весь вывод, вам нужно использовать отдельный массив (здесь $output), который будет заполнен выводом команды.

Другие вопросы по тегам