[samba] Samba, драйверы принтеров и rpcclient

Alex Moskalenko =?iso-8859-1?q?mav_=CE=C1_elserv=2Emsk=2Esu?=
Вт Июл 1 15:25:30 MSD 2008


Здравствуйте!

Когда-то я уже спрашивал тут об этой проблеме, правда, ответа так и не 
получил. Итак, есть ALT Linux Server 4.0 + updates+branch. 
samba-3.0.30-alt1.M40.1 в режиме PDC. На сервере с помощью CUPS настроены 
несколько принтеров. Самба принтеры видит, на нее загружены и сопоставлены 
принтерам соответствующие драйверы. Клиенты без проблем подключаются к 
принтерам, загружают с сервера драйверы, печатают, меняют настройки 
принтеров, в общем, делают все, что должны делать. При всей этой благодати 
есть одна неприятная и неочевидная проблема. При любом обращении к настройкам 
принтера или любом изменении этих настроек клиент скачивает файлы драйвера с 
сервера. Для небольших драйверов это практически незаметно, а для драйверов 
большого объема это вызывает существенные задержки при открытии/закрытии окон 
настроек или изменении настроек принтера. При этом на клиентах (Win2k/WinXP) 
в System Event Log появляются предупреждения от пользователя SYSTEM, 
источника Print, ID 20 со следующим содержанием (имена принтеров и файлов для 
разных принтеров разные):
===
Printer Driver HP LaserJet 1200 Series PCL 6 for Windows NT x86 Version-3 was 
added or updated. Files:- HPBF312G.DLL, HPBF312E.DLL, HPBF312I.PMD, 
HPBF312I.HLP, HPBFTM32.DLL, HPBAFD32.DLL, HPBF312K.DLL, HPBF312J.DLL, 
HPBF312I.DLL, HPBF312H.DLL, HPBF312F.DLL. 
===
Такое сообщение появляется при каждом открытии окна настроек принтера.

Если принтеры находятся на сервере Windows, то таких сообщений не возникает, 
как и задержек при открытии окон настроек.

При сравнении вывода rpcclient -U admin -c 'enumdrivers 2' server обнаружилось 
следующее:
Сервер - samba
===
rpcclient -U admin -c 'enumdrivers 2' samba
Printer Driver Info 2:
        Version: [3]
        Driver Name: [HP LaserJet 1200 Series PCL 6]
        Architecture: [Windows NT x86]
        Driver Path: [\\\\SAMBA\print$\W32X86\3\HPBF312G.DLL]
        Datafile: [\\\\SAMBA\print$\W32X86\3\HPBF312I.PMD]
        Configfile: [\\\\SAMBA\print$\W32X86\3\HPBF312E.DLL]
===
Сервер - Windows
===
rpcclient -U admin -c 'enumdrivers 2' windows
Printer Driver Info 2:
        Version: [3]
        Driver Name: [HP LaserJet 1200 Series PCL 6]
        Architecture: [Windows NT x86]
        Driver Path: [\\WINDOWS\print$\W32X86\3\HPBF312G.DLL]
        Datafile: [\\WINDOWS\print$\W32X86\3\HPBF312I.PMD]
        Configfile: [\\WINDOWS\print$\W32X86\3\HPBF312E.DLL]
===
В выводе rpcclient с сервера samba указаны 4 \ перед именем сервера, а в 
выводе с сервера windows - как и положено, 2. Та же картина и при enumdrivers 
3, и в окне свойств сервера с windows-клиента. При этом с windows-клиента не 
показываются свойства файлов драйвера с сервера samba. Возможно, из-за этого 
windows не могут определить версию драйвера на сервере и просто каждый раз 
скачивают его заново?...

Проблема повторяется на 4х серверах. Общее в них - ALT Linux Server 
4.0+updates+branch и samba в режиме PDC. Версии samba - 3.0.28, 3.0.28a, 
3.0.29, 3.0.30.

Пожалуйста, посмотрите у себя вывод rpcclient -c 'enumdrivers 2|3' с 
samba-сервера. Если у вас имена файлов начинаются с \\servername, а не с 
\\\\servername, то не могли бы подсказать, что и где я перекрутил в 
настройках, что таким образом могло повлиять на samb'у?

Заранее спасибо.

-- 
WBR, Alex Moskalenko


Подробная информация о списке рассылки Samba