среда, 1 февраля 2017 г.

маппинг принтеров на терминальном сервере

Начинают появляться проблемы с древними принтерами.
Надо, чтобы работал принтер hp laserjet 1320 клиента с Windows 7 64bit в терминальной сессии на Windows 2003 32bit.



Универсальный хепешный драйвер, по заверениям клиента, на 7-ку не ставится, всё, что сумел - поставил через windows update с сайта драйвер hp LaserJet 1320 PCL 5.
На сайте hp.com для Windows 2003 казалось бы есть подходящий драйвер, но после установки он называется hp LaserJet 1320 PCL 5e, имена не совпадают и при входе на терминальный сервер принтер не появляется.
Пришлось искать способ отображения имеющегося драйвера на требуемый, помнил, что делал так полтора десятка лет назад. Способ нашёлся здесь раньше, чем на сайте microsoft.

1. Внести в реестр по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd два новых строковых (REG_SZ) параметра:
  • PrinterMappingINFName - имя файла с настройками перенаправления драйверов, расположенного в папке %systemroot%\System32
  • PrinterMappingINFSection - имя секции в вышеуказанном файле, в которой будут располагаться сопоставления драйверов принтеров
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd]
"PrinterMappingINFName"="PrnDrivers.INF"
"PrinterMappingINFSection"="Printers"

2. Создать файл, указанный в параметре PrinterMappingINFName в папке %systemroot%\System32 по типу:

;PRINTSUBS.INF
;This file contains Mappings for Client driver to Server driver printer connections
[Printers]
;"Client Printer Driver Name" = "Server Printer Drive Name"
"hp LaserJet 1320 PCL 5" = "HP Universal Printing PCL 5e"


3. Перезагрузить компьютер. После перезагрузки создастся файл %systemroot%\System32\PrnDrivers.PNF
 В дальнейшем, при изменении файла %systemroot%\System32\PrnDrivers.INF (то есть при добавлении или удалении сопоставлений) достаточно просто перезапускать службу печати, не перезагружая сервер.