По теме.
Я нашел несколько способов создания сценариев для создания принтеров на серверах печати Windows с использованием WMI, но похоже, что WMI не поддерживает кластерные серверы печати (или кластерные серверы). вообще).
Скрипты в C:\Windows\System32\Printing_Admin_Scripts
бесполезны, потому что они не поддерживают кластер и в конечном итоге создают принтеры на активном узле кластера (как при использовании WMI).
Единственный найденный мною инструмент, способный работать на кластерном сервере печати, - это printui.exe
(ярлык для rundll32 printui.dll, PrintUIEntry
), но он не может создавать порты печати TCP: он может добавлять принтеры только в том случае, если порт уже существует.
Как я могу полностью написать сценарий создания принтера (включая порты печати TCP!) на кластерном сервере печати Windows Server 2008 R2?
printbrn.exe
способен экспортировать все конфигурация принтера, включая драйверы и порты, и ее импорт на другой сервер.
Я не знаю, будет ли это работать в кластерной среде, но есть старый добрый инструмент printbrm.exe. Он создает то, что по сути является CAB-файлом, полным XML, который может создавать резервные копии и восстанавливать настройки принтера между серверами. Сюда входят ужасные порты TCP / IP. Это может позволить вам сделать простое резервное копирование, изменить XML, чтобы добавить то, что вам нужно, и позволить вам выполнить восстановление вашего кластера. (Опять же, не уверен, поддерживает ли это кластер).
Пример Printbrm: http://technet.microsoft.com/en-us/library/cc722360.aspx
переименуйте файл в .cab и распакуйте на диск ...
Файл порта - brmports.xml. Я предлагаю экспортировать один или два принтера, чтобы посмотреть, как он «должен» выглядеть.
Единственный способ сначала создать порты - это использовать VBS, а потом уже использовать printui:
Set objWMIService = GetObject("winmgmts:")
Set objNewPort = objWMIService.Get _
("Win32_TCPIPPrinterPort").SpawnInstance_
objRAWPort.Name = "IP_192.168.1.2"
objRAWPort.Protocol = 1
objRAWPort.HostAddress = "192.168.1.2"
objRAWPort.PortNumber = "9100"
objRAWPort.Put_
Set objWMIService2 = GetObject("winmgmts:")
Set objNewPort2 = objWMIService2.Get _
("Win32_TCPIPPrinterPort").SpawnInstance_
objLPRPort.Name = "IP_192.168.1.3"
objLPRPort.Protocol = 2
objLPRPort.HostAddress = "192.168.1.3"
objLPRPort.Queue = "MyQueue"
objLPRPort.ByteCount = True
objLPRPort.Put_
cmd = "rundll32 printui.dll,PrintUIEntry /if /b "PRINTER NAME" /f %windir%\inf\ntprint.inf /r "IP_192.168.1.2" /m "HP Color LaserJet 4550 PS" /Z
objCommandShell.Run cmd,,True
Могут быть некоторые ошибки, но это общая идея.
Вы видели эту настройку GPO?
Computer Configuration > Preferences > Control Panel Settings > Printers
. Затем щелкните правой кнопкой мыши, чтобы перейти к New > TCP/IP Printer
Не знаком с кластерными серверами печати, но это должно работать для вас для сопоставления печати TCP / IP.