如果使用 Windows 來分享印表機,使用者可以在連線到印表機的同時自動安裝好驅動程式;之前以為用 samba 不能作到,不過今天一查資料發現可以,只是會有一些地雷……XD 以下就是簡單的步驟說明:
假設印表機已經以 cups 設定好了,並且採用 RAW 模式直接輸出到印表機:
- 建立 print$ 這個分享目錄。
在 smb.conf 中加入:
[print$]
path=/home/data/samba/drivers
browseable=no
read only=yes
write list = root
case sensitive = no
preserve case = No - 先找台 Windows 機器,連接上印表機並且設定好印表機的分享。假設這台 Windows 機器名字叫做 WINPC:
# net rpc printer MIGRATE DRIVERS HPLaserJet -U root -S WINPC
其中 HPLaserJet 是印表機分享的名字,在 Windows 與 cups 上要取一樣的名字。
- 如果出現 WERR_ACCESS_DENIED 的錯誤訊息,先試著增加 SePrintOperatorPrivilege 的權限給 root:
# net rpc rights grant root SePrintOperatorPrivilege -U root
如果還是不行,檢查 smb.conf 的 [printers] 區段內有沒有 use client driver = yes 的設定,有的話請暫時將它拿掉即可。
- 如果要設定 Windows x64 版本的 Driver,就在 WINPC 上安裝 Windows x64 的 Driver,再重新跑一遍 net rpc printer MIGRATE DRIVERS 就可以了。
參考資料:
- Samba How-To Collection: Chapter 13. Remote and Local Management: The Net Command
- Samba How-To Collection: Chapter 15. User Rights and Privileges
- Samba How-To Collection: Chapter 21. Classical Printing Support
- Samba Maillist: [Samba] Samba PDC and Automatic Printer Install
- samba 如何設定自動安裝 windows 印表機的驅動程式