設定 samba3 自動安裝 Windows 的印表機驅動程式

如果使用 Windows 來分享印表機,使用者可以在連線到印表機的同時自動安裝好驅動程式;之前以為用 samba 不能作到,不過今天一查資料發現可以,只是會有一些地雷……XD 以下就是簡單的步驟說明:

假設印表機已經以 cups 設定好了,並且採用 RAW 模式直接輸出到印表機:

  1. 建立 print$ 這個分享目錄。
    在 smb.conf 中加入:

    [print$]
    path=/home/data/samba/drivers
    browseable=no
    read only=yes
    write list = root
    case sensitive = no
    preserve case = No

  2. 先找台 Windows 機器,連接上印表機並且設定好印表機的分享。假設這台 Windows 機器名字叫做 WINPC:

    # net rpc printer MIGRATE DRIVERS HPLaserJet -U root -S WINPC

    其中 HPLaserJet 是印表機分享的名字,在 Windows 與 cups 上要取一樣的名字。

  3. 如果出現 WERR_ACCESS_DENIED 的錯誤訊息,先試著增加 SePrintOperatorPrivilege 的權限給 root:

    # net rpc rights grant root SePrintOperatorPrivilege -U root

    如果還是不行,檢查 smb.conf 的 [printers] 區段內有沒有 use client driver = yes 的設定,有的話請暫時將它拿掉即可。

  4. 如果要設定 Windows x64 版本的 Driver,就在 WINPC 上安裝 Windows x64 的 Driver,再重新跑一遍 net rpc printer MIGRATE DRIVERS 就可以了。

參考資料: