Mac OS X系統的打印機,無論是Server版還是普通的Client版,都是通過CUPS(Common UNIX Printing System TM )子系統管理的, 而CUPS系統是開源的,無論在OS X還是Unix, Linux, 甚至是Windows上都有它的實現版本,而且在*nix系統中得到廣泛支持,基本上是時事上的標準了。
在OS X的日常管理中,除了可以有OS X服務器管理的網絡打印機的共享從而通過Workgroup Manager來管理用戶的打印機配置外,還會遇到要在目標客戶端單獨管理打印機的情況,而CUPS系統如同其它的*nix系統一樣,支持命令行的命令方式管理,所以,一是可以通過ssh遠程登錄客戶端并管理打印機,或者是通過Remote Desktop來管理遠程機器的打印機,后者可以是圖形界面方式,也可以是發送UNIX命令的方式。所以熟練使用,并建立自己系統內的常用的命令行來管理,不僅事半功倍,而且減少人為的錯誤。
1. 取消目標機器的所有的打印任務:有的時候,一個錯誤的打印命令可能造成打印數千張的任務,有的用戶由于不了解打印過程,只是關閉了打印機來暫時停止任務,而不是刪除那個打印錯誤,這樣一個網絡打印機就無法被其它用戶使用,一旦開機,那個錯誤的打印任務又會繼續打印,這種情況下,管理員可以通過發送下面的取消所有打印任務的方法,來處理:
cancel -a
如果需要指定打印機名稱可以是:
cancel -a [printer name]
如果只需要對指定的用戶打印任務,可以加上-u選項:
cancel -a -u [username]
或者使用下面命令
lprm -
2. 安裝一個打印機: 這是最經常使用的了,安裝新的打印機是最令管理員頭痛之一的了,這個最煩瑣而沒有創造性。好了使用下面的命令:
lpadmin -p Printer_Name -L "Printer Location" -E -v lpd:// ip-address-or-hostname -P /Path/to/Printer_Driver.gz
首先要想能使用上面的命令,要知道打印機的基本情況,比如IP地址, 所使用的打印機名, 最主要的是打印機的驅動程序的位置和名稱,這一點需要你的網絡上的系統的一致性,而一致性的保證就是由統一的系統映像(system image)來保證和實施的,關于系統的映像的制作和實施,在以前的blog里面有。一般來說, 所有的CUPS的打印機驅動程序文件保存在:Library/Printers/PPDs/Contents/Resources/目錄下面,都是以.gz為結尾的文件. 使用 lpinfo -m 可以獲得安裝的驅動程序列表
其中的lpd://ip-address-or-hostname是打印機的協議名和地址,也就是URI,普遍使用的還可以有ipp://ip-address-or-hostname:port, 或者是socket://ip-address-or-hostname:port,最簡單的就是socket協議了。其中ip-address-or-hostname可以是IP地址也可以是打印機的主機名,如果通過名稱解析可以獲得IP,還有port, 通常socket的協議使用的關口是9100. 具體的可以是用 lpinfo -v 命令來得到。
-E是打開這個打印設備來接受打印任務
還可以加上限制用戶使用的選項, 默認是任何登錄的用戶都可以打印:
-u allow:user,@group 或者 -u deny:user,@group
或者刪除上面的對用戶或組的限制:
-u allow:all 或者 -u deny:none
3. 禁止和打開打印機
cupsaccept/cupsreject
cupsenable/cupsdisable
4. 刪除打印機:
lpadmin -x printqueue-name
這里要說一下,這個printqueue-name不是我們在System Preference里面的Print&Fax里面的打印機名稱,要想找到打印機的queue name,或者到Print&Fax里面的打印機的Options&Supplies里找,見下圖, 或者通過lpstat -p來獲得:
5. 設置默認打印機:
lpadmin -d destination-printer
6.添加本地USB的打印機:
通過下面命令獲得該USB打印機的USB端口值,或者通過類似上圖中URL的值:
lpstat -v
然后使用上面2的命令來添加其中URI使用類似的:
usb://HP/Photosmart%20C3100%20series?serial=CN6BMC43PK04KV
7. 獲得/設置打印機的安裝參數:
lpoptions -d printqueue-name -l
安裝完打印機還要配置適當的參數,上面的命令來獲取一個已經正確安裝的打印機設備的參數,然后可以通過下面的方法來配置相同參數的打印機:
lpoptions -d printqueue-name -o option= value
比如配置雙面打印器(Duplexer):
lpoptions -d Printer_queue -o "HPOption_Duplexer/Duplex Unit: *True False"
下面是一個添加打印機的shell script實例:
#!/bin/bash
# Tests to see if printer exists - sidesteps a variable scope issue
# Requires the printer name as a parameter. Returns 1 if the printer exists.
function printerExists()
{
if [ $# -ne 1 ]; then
echo "Incorrect parameters"
return 0
else
lpstat -p | awk '{print $2}' | while read printer
do
if [ $1 = "${printer}" ]; then
return 1
fi
done
fi
}
# Printer Name cannot Include any spaces
prName="formalName"
# User friendly printer name"
prDescription="Printer Name"
# Location
prLocation="Home Office"
# IP Address of printer
prAddress="192.168.1.99"
# PPD Filename... assumes it is installed on machine
prPPD="HP LaserJet 2200.gz"
#Test If Printer is already installed
printerExists $prName
prExists=$?
if [ $prExists -eq 1 ]; then
echo "Printer already exists. Skipping: /"$prName/""
else
# Add Printer Command
lpadmin -p "${prName}" -D "${prDescription}" -L "${prLocation}" /
-E -v lpd://"${prAddress}" -P "/Library/Printers/PPDs/Contents/Resources/en.lproj/$prPPD" /
-o HPOption_Duplexer=True -o Resolution=1200x1200dpi
參考:
http://www.cups.org
http://www.macosxhints.com/article.php?story=20061203221317612&query=remove%2BRemote%2Bdesktop%2Badmin
fi
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
