Я работаю в компании, которая имеет около 3000 компьютеров и около 1500 принтеров. В настоящее время метод установки принтера довольно ручной, и мы собираемся автоматизировать этот процесс. На этот вопрос распространяются определенные ограничения:

  • Должен работать на Windows 7 и Windows 10
  • Решение не может быть сервером печати

Кроме того, у меня есть несколько личных предпочтений относительно решения:

  • Желательно не требует административных прав на ПК
  • Предпочтительно можно управлять удаленно, т.е. изменение модели принтера может быть воспроизведено для всех пользователей в домене.
  • Желательно, чтобы было мало сценариев, так как мы планируем заставить конечных пользователей использовать этот инструмент.

Текущий процесс, который мы используем, состоит в том, чтобы выполнить следующую команду (или создать пакетный скрипт), но это определенно не является допустимым решением:

rundll32 printui.dll,PrintUIEntry /ia /m "Kyocera FS-4100DN KX" /f "\\share\xfer\PRTscript\_drivers\KXDriver\32bit\OEMsetup.inf"

Это неверное решение, так как:

  1. Мы не можем реплицировать изменения на клиентов (если мы не разместим «скрипт» на общем ресурсе
  2. Для установки принтеров требуются права администратора.
  3. Это ручная задача, и она не может отличить 32 от 64 бит (или, по крайней мере, она должна обслуживать оба)

Теперь я знаю, что мы можем использовать параметр групповой политики для развертывания принтеров, но это зависит от двух вещей:

  1. Подразделение предприятия (или, по крайней мере, группа безопасности) является правильным;
  2. Рассматриваемые ПК получают групповую политику (они должны)

И да, я знаю, что групповая политика соответствует всем моим требованиям и предпочтениям, но я просто хочу взглянуть на свои варианты, прежде чем мне нужно будет привести в порядок мое подразделение (и подразделение, группы безопасности и существующие политики) - в конечном итоге GPO будет мудрое решение, но я хочу краткосрочный инструмент, пока я работаю над этим.

Поэтому, возможно, я подумал, что мы могли бы использовать простой сценарий Visual Basic - но опять же, для этого требуется много ручного редактирования, и единственный способ автоматизировать это - развертывание через групповую политику:

Set WshNetwork = CreateObject("WScript.Network")
PrinterPath = "\\Server\Printer"
PrinterDriver = "PrinterDriver"
WshNetwork.AddWindowsPrinterConnection PrinterPath, PrinterDriver
WshNetwork.SetDefaultPrinter "\\Server\Printer"

Следующая теория, которую я могу исключить, состоит в том, чтобы использовать PrintBRM

1 ответ1

1

https://drive.google.com/open?id=0ByhxkwJBdusDczU2MXhrYldfLUU

cscript printer.vbs -u ad\username -w <password> -s <computer name>
cscript printer.vbs -u ad\username -w <password> -s <computer name>
cscript printer.vbs -u ad\username -w <password> -s <computer name>
cscript printer.vbs -u ad\username -w <password> -s <computer name>

Смысл этого сценария - установить принтер на удаленном компьютере (компьютерах), не посещая местоположение.

Я обычно составляю список из 25, копирую и вставляю их в административное командное окно и запускаю.

Ссылаясь на № 3 выше 32/64 бит. Мой сценарий предполагает 64-разрядную версию, и если это не удается, он возвращается к 32-разрядной установке.

Для установки принтера потребуются права администратора, лучше сделайте это, а затем разрешите пользователю это сделать.

Чтобы избежать ошибок, я удаляю любой существующий принтер / порт с тем же именем и воссоздаю его.

Имя пользователя и пароль являются учетными данными домена, а не локальными. Может быть, это даст вам стартовое место. Возможно, вам придется изменить код, чтобы добавить информацию о драйвере принтера из командной строки. У меня в основном один и тот же принтер, поэтому я его жестко запрограммировал. Также имя принтера можно сделать параметром, я просто никогда этого не делал.

Я просто настраиваю код.

cscript printer.vbs -p "Printer Name" -d "HP Universal Printing PS (v6.0.0)" -i "prnhp001.inf" -h "\\<server>\drivers\Printer\prnhp001" -u ad\username -w <password> -s <computer name>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .