某客户新增一台佳能 Canon iR2022打印机,自带网络模块,因此可以直接在所有客户端做本地打印机使用。
添加网络端口及驱动安装比较繁琐(客户端比较多,登录用户仅为普通用户,没有安装本地打印机的权限),因此考虑采用组策略做开机脚本统一部署。
参考如下命令实现:
prnport -a -r IP_192.168.1.2 -h 192.168.1.2 -o raw -n 9100
rundll32 printui.dll,PrintUIEntry /if /b "Canon iR2022/2025/2030 UFRII LT" /f CNLB0C.INF /r "IP_192.168.1.2" /m "Canon iR2022/2025/2030 UFRII LT"
 
我用上面的命令实现了安装,如其他机型可能还需要用到
c.  //h:c.  /s
prnmngr
prncnfg
 
*prnport,prnmngr,prncnfg为VBS脚本,机器自带,但挂载系统中未带的驱动用prnmngr不成功,报错 win32 error 87,因此我用rundll32 printui.dll,PrintUIEntry 解决
 
具体参数参见相关文档,不做详尽描述
 
rundll32 printui.dll,PrintUIEntry 参数说明
------------------------------------------------------------------------------
/ia 用 inf 文件安装打印机驱动程序
 /if 用 inf 文件安装打印机
 /b[name] 基本打印机名
 /c[name] 如果操作在远程机器上,unc 机器名
 /dl 删除本地打印机
 /dn 删除网络打印机连接
 /dd 删除打印机驱动程序
 /f[file] inf 文件或输出文件
 /h[arch] 驱动程序体系结构,为下列之一: Alpha | Intel | IA64
 /m[model] 打印机驱动程序型号名
 /n[name] 打印机名
 /v[version] 驱动程序版本属于下列中的一个: Windows 95、98 和 ME | Windows NT 4.0 | Windows NT 4.0 或 2000 | Windows 2000 或 XP|  Windows XP
 /q 安静模式,不显示错误信息
 /r[port] 端口名
 /y 将打印机设为默认打印机
 /z 不要自动共享这台打印机
 /Z 共享这台打印机,只能跟 /if 选项一起使用

 更多的帮助请使用rundll32 printui.dll,PrintUIEntry /?
 
---------------------------------------------------------------------------
用法: prnport [-adlgt?] [-r 端口][-s 服务器][-u 用户名][-w 密码]
               [-o raw|lpr][-h 主机地址][-q 队列][-n 编号]
               [-me | -md ][-i SNMP 索引][-y 团体][-2e | -2d]
参数:
-a     - 添加端口
-d     - 删除指定端口
-g     - 获得 TCP 端口的配置
-h     - 设备的 IP 地址
-i     - SNMP 索引,如果已启用 SNMP
-l     - 列出所有 TCP 端口
-m     - SNMP 类型。[e] 启用,[d] 停用
-n     - 端口编号,应用于 TCP RAW 端口
-o     - 端口类型,raw 或 lpr
-q     - 队列名称,应用于 TCP LPR 端口
-r     - 端口名
-s     - 服务器名
-t     - 设定 TCP 端口的配置
-u     - 用户名
-w     - 密码
-y     - 团体名,如果已启用 SNMP
-2     - 双后台处理程序,应用于 TCP LPR 端口。[e] 启用,[d] 停用
-?     - 显示命令用法
例如:
prnport -l -s 服务器
prnport -d -s 服务器 -r IP_1.2.3.4
prnport -a -s 服务器 -r IP_1.2.3.4 -h 1.2.3.4 -o raw -n 9100
prnport -t -s 服务器 -r IP_1.2.3.4 -me -y public -i 1 -n 9100
prnport -g -s 服务器 -r IP_1.2.3.4
prnport -a -r IP_1.2.3.4 -h 1.2.3.4
注解:
上一个例子将试图获取指定 IP 地址的设备设置。
如果已检测到设备,那个设备的首选设备会被添加到 TCP 端口。
---------------------------------------------------------------------------------------
用法: prnmngr [-adxgtl?][c] [-s 服务器][-p 打印机][-m 驱动程序型号]
               [-r 端口][-u 用户名][-w 密码]
参数:
-a     - 添加本地打印机
-ac    - 添加打印机连接
-d     - 删除打印机
-g     - 获取默认打印机
-l     - 列出打印机
-m     - 驱动程序型号
-p     - 打印机名
-r     - 端口名
-s     - 服务器名
-t     - 设置默认打印机
-u     - 用户名
-w     - 密码
-x     - 删除所有打印机
-?     - 显示命令用法
例如:
prnmngr -a -p "打印机" -m "驱动程序" -r "lpt1:"
prnmngr -d -p "打印机" -s 服务器
prnmngr -ac -p "\\服务器\打印机"
prnmngr -d -p "\\服务器\打印机"
prnmngr -x -s 服务器
prnmngr -l -s 服务器
prnmngr -g
prnmngr -t -p "\\服务器\打印机"
--------------------------------------------------------------------------------
用法: prncnfg [-gtx?] [-s 服务器][-p 打印机][-z 新打印机名]
               [-u 用户名][-w 密码][-r 端口名][-l 位置]
               [-m 注解][-h 共享名][-f sep 文件][-y 数据类型]
               [-st 开始时间][-ut 结束时间][-i 默认优先级]
               [-o priority][<+|->shared][<+|->direct][<+|->hidden]
               [<+|->published][<+|->rawonly][<+|->queued][<+|->enablebidi]
               [<+|->keepprintedjobs][<+|->workoffline][<+|->enabledevq]
               [<+|->docompletefirst]
参数:
-f     - 分隔符文件名
-g     - 获取配置
-h     - 共享名
-i     - 默认优先级
-l     - 位置字符串
-m     - 注解字符串
-o     - 优先级
-p     - 打印机名
-r     - 端口名
-s     - 服务器名
-st    - 开始时间
-t     - 设置配置
-u     - 用户名
-ut    - 结束时间
-w     - 密码
-x     - 更改打印机名
-y     - 数据类型字符串
-z     - 新打印机名
-?     - 显示命令用法
例如:
prncnfg -g -s 服务器 -p 打印机
prncnfg -x -s 服务器 -p 打印机 -z "新打印机"
prncnfg -t -p 打印机 -l "A 楼/第 100 层/办公室 1" -m "彩色打印机"
prncnfg -t -p 打印机 -h "共享" +shared -direct
prncnfg -t -p 打印机 +rawonly +keepprintedjobs
prncnfg -t -p 打印机 -st 2300 -ut 0215 -o 1 -i 5