建立分享[print$]
在smb.conf中加入
path=/etc/samba/drivers
browseable=no
read only=yes
write list = root
#testparm
*測試一下設定,並使用windows來連線測試一下
net use g: \\samba-server\print$
[print$]的分享
目錄結構
其下至少包含二個目錄
[print$]--->W32X86
#Windows NT x86
(NT XP,2000,20003
--->WIN40
#
(95/98)
又W32X86中可以含能2和3的子目錄
#新的版本是將驅動程式放在3的子目錄下
#這是基本的操作流程

安裝驅動程式
使用命令rpcclient (adddriver/setdriver), smbclient
1.查
詢印表機驅動程式的檔案
rpcclient
-U使用者名稱%密碼 -c 'getdriver "印表機驅動程式的名稱"' 主機名稱(IP)
#如果你不知道"印表機驅動程式的名稱"可以使用下面的命令來查詢
rpcclient
-U使用者%密碼 -c 'enumdrivers' 印表機伺服器
#印表機名稱不分大小寫,但需要完整的名稱(安裝時的命名),另外主機可以是任何電腦,不一樣要印表機伺服器,只要它有裝驅動程式,而且是本機的才可以查
的到
#因為我的SAMBA和ad整合,因此使用者使用AD的管理者 ,因如果你只要查詢目錄3如下,否則它會秀出所有的驅動程式
rpcclient
-U使用者名稱%密碼 -c 'getdriver "印表機名稱" 3' 主機名稱(IP)
例1:RICOH AFICIO 1045 pcl
[Windows
4.0]
Printer
Driver Info 3:
Version: [0]
Driver Name: [RICOH Aficio 1045 PCL 5e]
Architecture: [Windows 4.0]
Driver Path: [\\10.10.1.1\print$\WIN40\0\RIC548.DRV]
Datafile: [\\10.10.1.1\print$\WIN40\0\RIC548.DAT]
Configfile: [\\10.10.1.1\print$\WIN40\0\RIC548.DRV]
Helpfile: [\\10.10.1.1\print$\WIN40\0\RIC548.HLP]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\RIC548.DRV]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\RIC548.DAT]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\RIC548C.DLL]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\RIC548E.DLL]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\RIC548G.DLL]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\RIC548H.W95]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\RIC548B.DLL]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\RIC548J.DLL]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\RIC548K.DLL]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\RIC548A.DLL]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\RIC548.HLP]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\RIC548X.DLL]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\RIC548WM.DLL]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\RIC548X.EXE]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\RICTI16.DLL]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\RICTI32.DLL]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\TRACKID.DLL]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\TIFMTA.DLL]
Dependentfiles: [\\10.10.1.1\print$\WIN40\0\TIBASE64.DLL]
Monitorname: []
Defaultdatatype: [RAW]
[Windows
NT x86]
Printer
Driver Info 3:
Version: [3]
Driver Name: [RICOH Aficio 1045 PCL 5e]
Architecture: [Windows NT x86]
Driver Path: [\\10.10.1.1\print$\W32X86\3\RIC548K.DLL]
Datafile: [\\10.10.1.1\print$\W32X86\3\RIC548K.DLL]
Configfile: [\\10.10.1.1\print$\W32X86\3\RIC548U.DLL]
Helpfile: [\\10.10.1.1\print$\W32X86\3\RIC548.HLP]
Dependentfiles: [\\10.10.1.1\print$\W32X86\3\RIC548P.DLL]
Dependentfiles: [\\10.10.1.1\print$\W32X86\3\RIC548C.DLL]
Dependentfiles: [\\10.10.1.1\print$\W32X86\3\RIC548L.DLL]
Dependentfiles: [\\10.10.1.1\print$\W32X86\3\RIC548X.DLL]
Dependentfiles: [\\10.10.1.1\print$\W32X86\3\RIC548S.DLL]
Dependentfiles: [\\10.10.1.1\print$\W32X86\3\RIC548J.DLL]
Dependentfiles: [\\10.10.1.1\print$\W32X86\3\RIC548Q.EXE]
Dependentfiles: [\\10.10.1.1\print$\W32X86\3\RIC548ZU.DLL]
Dependentfiles: [\\10.10.1.1\print$\W32X86\3\RIC548ZK.DLL]
Dependentfiles: [\\10.10.1.1\print$\W32X86\3\RIC548WU.DLL]
Dependentfiles: [\\10.10.1.1\print$\W32X86\3\RIC548WK.DLL]
Dependentfiles: [\\10.10.1.1\print$\W32X86\3\RIC548X.EXE]
Dependentfiles: [\\10.10.1.1\print$\W32X86\3\TrackID.DLL]
Dependentfiles: [\\10.10.1.1\print$\W32X86\3\TIBase64.dll]
Dependentfiles: [\\10.10.1.1\print$\W32X86\3\TIFmtA.dll]
Monitorname: []
Defaultdatatype: []
#另外可以列印測試頁,就會有相關的資訊,這是XP列印頁的部份內容
2.下
載驅動程式到linux
能可以在分享的w32x86下面下這個命令,如此可少一次上傳的動作
cd
/etc/samba/drivers #這個位置會你上面的設定而有所不同
smbclient //主機名稱/print\$ -U使用者%密碼 -c 'cd w32x86/3;mget RIC*.*
TrackID.DLL TI*.*'
如此它就會問你是否要get檔案,根據上述1下載你的檔案
#-c '執行的命令' ,cd w32x86/3 切換目錄 ,mget 多重下載後命接檔案名稱,有多個檔案使用空白分開
如果你要完全互動,-c的命令後面再給
#smbclient
//主機名稱/print\$ -U使用者%密碼
smb: \>cd w32x86
smb: \w32x86\>
smb: \w32x86\>mget 檔名
3.上
傳到[print$]的w32x86
同上使用put或mput上傳檔案,如果你根據2就不需要再上傳
4.安
裝驅動程式
rpcclient
-U使用者%密碼 -c 'adddriver "Windows NT x86"
"印表機的程式.............."
#其中印表機的程式的規格如下: 使用man rpcclient 來查詢,相對於rpcclient
getdriver的命令所查到的
Driver Name:Driver Path:DataFile:ConfigFile:HelpFile:Language Monitor
Name:Default Data Type:相依檔案,若多檔使用逗點分開
#空白使用NULL,Monitor Name使用NULL ,Default Data Type使用RAW
rpcclient
-U使用者名稱%密碼 -c 'adddriver "Windows NT x86"\
"RICOH
Aficio 1045 PCL 5e:RIC548K.DLL:RIC548K.DLL:RIC548U.DLL:\
RIC548.HLP:NULL:RAW:\
RIC548P.DLL,RIC548C.DLL,RIC548L.DLL,RIC548X.DLL,RIC548S.DLL\
,RIC548J.DLL,RIC548Q.EXE,RIC548ZU.DLL,RIC548ZK.DLL,RIC548WU.DLL\
,RIC548WK.DLL,RIC548X.EXE,TrackID.DLL,TIBase64.dll,TIFmtA.dll"
3' 主機名稱或IP
#如果有問題請先將smb.conf的read only = yes 變成 no
5.設
定驅動程式對應到的印表機
rpcclient -U使用者名稱%密碼 -c 'setdriver 印表機名稱 驅動程式' 主機
問題:
1.如何得知印表機的驅動程式
rcpclient -U使用者%密碼 -c "enumdrivers" 已安裝印表機之主機
2. 在linux設定印表機?
請參考網路上有關Cups說明
3.如果rpcclient adddriver有無法複製的錯誤訊息,
我將smb.conf中的
read only=yes 改為no