Mac OS X:远程管理打印机

Mac OS X系统的打印机,无论是Server版还是普通的Client版,都是通过CUPS(Common UNIX Printing SystemTM)子系统管理的, 而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来获得:

Mac OS X:远程管理打印机

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

你可能感兴趣的:(mac,OS,X)