Назад | Перейти на главную страницу

Как создать сценарий для создания принтера на кластерном сервере печати Windows Server 2008 R2?

По теме.

Я нашел несколько способов создания сценариев для создания принтеров на серверах печати Windows с использованием WMI, но похоже, что WMI не поддерживает кластерные серверы печати (или кластерные серверы). вообще).

Скрипты в C:\Windows\System32\Printing_Admin_Scripts бесполезны, потому что они не поддерживают кластер и в конечном итоге создают принтеры на активном узле кластера (как при использовании WMI).

Единственный найденный мною инструмент, способный работать на кластерном сервере печати, - это printui.exe (ярлык для rundll32 printui.dll, PrintUIEntry), но он не может создавать порты печати TCP: он может добавлять принтеры только в том случае, если порт уже существует.

Как я могу полностью написать сценарий создания принтера (включая порты печати TCP!) на кластерном сервере печати Windows Server 2008 R2?

Я не знаю, будет ли это работать в кластерной среде, но есть старый добрый инструмент 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.