Веб-сервер принтера PHP

Прямо сейчас у меня есть веб-сайт, который ссылается на сценарии в локальной сети, которые позволяют мне устанавливать множество сетевых принтеров, которыми я управляю. По сути, это просто HTML-страница, которая очень ненадежно указывает на сценарий в другой части локальной сети, который устанавливает ее как TCP/IP-принтер на локальной машине.

<a href="file://server/prnt/HP3200.bat>HP 3200 (room C204)</a>
<a href="file://server/prnt/HP3200.bat>HP 3200 (room C206)</a>
<a href="file://server/prnt/DELL1500.bat>DELL 1500</a>
<a href="file://server/prnt/TOS120.bat>Toshiba 120</a>

Кто-нибудь знает, как я могу сделать это более безопасным и эффективным? На сервере Linux также размещаются страницы PHP, поэтому сценарии на стороне сервера не будут проблемой. Для веб-сайта должен быть лучший способ управлять многими IP-адресами, именами и драйверами принтеров. Я бы предпочел, чтобы веб-сайт мог каким-то образом установить принтер, вместо того, чтобы показывать уродливое окно DOS неопытным пользователям ПК, пока он захватывает файл драйвера .inf и добавляет принтер.


person CoderWalker    schedule 09.08.2012    source источник


Ответы (1)


Это действительно не то, что вы можете сделать с PHP. Все PHP выполняется на самом сервере, поэтому он ничего не может сделать от имени пользователя так, как вы этого хотите, я думаю. Javascript также не подходит из-за ограничений безопасности, которые он имеет (было бы ОЧЕНЬ ОЧЕНЬ плохо, если бы javascript мог изменять эти типы настроек и выполнять подобный код).

То, что вы делаете, очень просто, если не считать запуска SOE и написания приложения, которое делает то, что вы хотите. Я бы посоветовал, если вас беспокоит то, как эти .bat-скрипты ВЫГЛЯДЯТ, вставьте их в код и сделайте их более привлекательными или сделайте их более «технологичными». В настоящее время у вас есть чистый, простой и эффективный способ добавления принтера к ПК.

Изменить: приложение, вероятно, было оснастка msi. Это будет значительное кодирование, тем более, если вы не знакомы с программированием Windows.

Редактировать 2: перечитав свой комментарий, вы можете сделать что-то вроде этого:

Создайте файл .VBS с чем-то вроде этих строк:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\Batch Files\syncfiles.bat" & Chr(34), 0
Set WshShell = Nothing

Сделайте так, чтобы ваша веб-страница указывала на эти файлы VBS, а не на файлы bat. Все, что нужно сделать, это открыть bat-файл в фоновом режиме. Обратите внимание, что bat-файлы могут размещать в тексте важную информацию, например «Установка выполнена успешно» или «Установка не удалась». Если вы запускаете все невидимо, ваш пользователь не может точно сказать, работает ли что-то.

person Fluffeh    schedule 09.08.2012
comment
Спасибо за комментарий. Мы перешли с системы под названием Novell iPrint. С iPrint вы посетили веб-страницу iPrint, щелкнули принтер, и он схватил драйвер, установил принтер, установил его по умолчанию. Вы были правы, они использовали клиентскую программу iPrint. Спасибо - person CoderWalker; 09.08.2012