如何批量部署基于TCP/IP端口的网络打印机

一般来说,安装基于TCP/IP端口的打印机都需要经过两个步骤,第一步是添加TCP/IP端口,第二步是安装打印机驱动程序.
既然要实现无需人工参与批量部署,就肯定离不开脚本或者命令行.好在这些WINDOWS都给予了完美的支持,下面即刻转入正题.
1、添加TCP/IP端口

 Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Print/Monitors/Standard TCP/IP Port/Ports]
"StatusUpdateInterval"=dword:0000000a
"StatusUpdateEnabled"=dword:00000001

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Print/Monitors/Standard TCP/IP Port/Ports/IP_10.10.10.1]
"Protocol"=dword:00000001
"Version"=dword:00000001
"HostName"=""
"IPAddress"="10.10.10.1"
"HWAddress"=""
"PortNumber"=dword:0000238c
"SNMP Community"="public"
"SNMP Enabled"=dword:00000001
"SNMP Index"=dword:00000001

将以上代码保存为注册表REG文件,比如port.reg,双击导入注册表即可完成添加TCP/IP端口.其中端口地址10.10.10.1视自身网络环境而定。
添加TCP/IP端口曾经困扰我多时,谁料到竟然用注册表就可以轻松搞掂

2、安装打印机驱动程序,WINDOWS支持命令行安装打印机,命令如下:rundll32 printui.dll,PrintUIEntry /?

假设现在要在命令行下安装一台HP 4000型号的打印机驱动程序。那么完整的命令如下:

引用内容 引用内容
rundll32 printui.dll,PrintUIEntry /if /b "HP Laserjet 4000 Series PCL" /f %windir%/inf/ntprint.inf /r "IP_10.10.10.1" /m "HP Laserjet 4000 Series PCL" /z


将以上命令保存成bat批处理文件.比如setup.bat,其中端口名称IP_10.10.10.1视自身网络环境而定。

其中
/if 表示用inf文件安装打印机
/b 表示打印机名称,也就是在控制面板/打印机里面看到的打印机名称,这是可以随意更改的
/f 表示驱动程序inf文件的路径,以上例子中,由于WINDOWS2000/XP已经集成了HP4000型打印机,所以路径就是%windir%/inf/ntprint.inf ,支持UNC路径。
/r 表示TCP/IP端口名称
/m 表示打印机标准名称,这个名称由inf文件确定,如例子中ntprint.inf文件里就有HP Laserjet 4000 Series PCL这个字串,不可更改
/z 表示是否共享该打印机,由大小写来区分

更多参数可以使用rundll32 printui.dll,PrintUIEntry /?查看


最后,安装的两个步骤都已经准备好.一个是port.reg文件,一个是setup.bat文件.再把这两个文件用WINRAR整合成自解压格式HP4000.EXE.放到共享文件夹或者网页上或者活动目录的启动脚本中就可以实现大规模部署.
以下是整合后的自解压文件范例供大家参考。
试试看,你的打印机列表中是不是多了一个TCP/IP端口的HP Laserjet 4000 Series PCL打印机

附加:常规共享打印自动安装方案

假设有一台IP地址192.168.1.10的WIN2000系统,带一个HP1100打印机,打印机共享名为HP,那么打印机在网络上的地址为//192.168.1.10/HPLaserJ

常规的方法是只需要在"开始"-"运行"键入//192.168.1.10/HPLaserJ,之后系统弹出一个"连接到打印机"的消息窗口,点"确定"就可以完成添加打印机.系统会自动从那台WIN2000系统索取并自动安装该驱动程序.

如果要完全自动部署,用脚本添加该类共享的打印机跟添加TCP/IP端口打印机类似,并且更为简便,由于期间省略了安装打印端口这个过程,使得添加打印机速度更快.

命令语法如下:

rundll32 printui.dll,PrintUIEntry /if /b "HP LaserJet 1100 (MS)" /f %windir%/inf/ntprint.inf /r "//192.168.1.10/HPLaserJ" /m "HP LaserJet 1100 (MS)"

若有错漏,不吝赐教.
转贴來自:http://www.zlaxy.com/blog/article.asp?id=2976

再说说SETUP.BAT中的两个需要注意的地方.

一处是 net stop spooler & net start spooler 

2000系统和XP系统在导入注册表添加端口后,如果SPOOLSV服务不重新启动会有不同的结果.所以最保险的办法是加上以上语句重新启动服务.

另一处是 rundll32 printui.dll,PrintUIEntry /dl /n "HP Laserjet 4000 Series PCL" /q

这是一个删除打印机的命令,否则再次添加该打印机的时候会出现HP Laserjet 4000 Series PCL(副本1)甚至更多的副本.

在实际操作中,不能一次同时添加多个打印机,只能一个接一个的添加;

如果有报错导致无法继续,这是由于SPOOLSV服务尚未启动完成所致.再试多一次即可.这种情况只有在一个接一个的连续添加打印机时有可能出现。

整个过程在2000/XP中顺利测试通过,在活动目录部署中顺利通过。

转贴來自:http://www.zlaxy.com/blog/article.asp?id=2976

展开阅读全文

没有更多推荐了,返回首页