注:这是一个为了解决工作中的问题而编写的Windows VBScript脚本程序,英文名称我叫她:Adaptable Printer Deployment。为了中文的blog,写了这个中文介绍和具体实施的详细解释。这个0.5.5版本还有好多需要改进和功能添加等工作,不过这个版本已经可以胜任这个任务的绝大部分要求了。
本程序使用VBScript语言开发,她为管理员对局域网内部的网络打印的计划/配置/部署/调整等管理工作提供了一个方便的工具,可以事前规划和配置,快速部署到桌面,可以轻松适应打印机策略调整。
· 适合于没有Windows Server的局域网环境,具体说是没有Windows打印服务(PrintService)的网络环境,或者没有其它集中打印管理系统。在Windows打印服务的网络环境中,可以使用PrinterConnection和Group Policy或者简单脚本等来方便地实现打印部署。在集中打印管理环境中,打印机的位置和驱动,可以独立于打印机本身。这两种情况基本无须本程序的帮助,管理员就可方便实现打印机的部署。
· 网络打印机有固定IP地址,或者可以解析的DNS名称,而且支持9100端口打印协议(也就是可以在Windows电脑上使用添加标准TCP/IP端口的方式来添加的网络打印机)
简单说,在一个打印机没有完全管理的网络环境中,使用本脚本,可以根据管理员设定的,根据打印机和电脑相匹配的位置,将相应的打印机安装部署到电脑终端。
在网络环境中,打印机可能被移动,添加,下线或者更新;客户端不仅有台式机,也有可移动笔记本电脑,电脑的更新或者系统重装等,并且打印需求也是随时变化,这些都会涉及打印服务的再部署的操作。而手动或者图形界面的方式既费时耗费精力也不易管理和记录,还容易造成人为错误,特别是多部门的中大型企业环境,各个部门因办公环境变化,配置差异大,所以为了可以更方便的部署打印服务到客户终端,一个可以预先定制,方便直观,适应变化,并可远程部署的方式,可以极大的方便管理员对打印需求的管理。
实例1:
新打印机需要部署到部门并替换一个旧的,由于打印机驱动等问题,所有部门电脑需要安装该打印机,并且删除那个旧的打印机。在没有Windows打印服务的网络环境里,管理员只好在每个电脑上手动安装该打印机。使用本程序,管理员只须重新部署所有该部门的打印机,在该部门的打印机描述文件中,添加一行这个新打印机的和它的驱动程序,并删除旧的打印机描述,之后,使用任何的远程程序运行等手段部署到所有的目标电脑。
实例2:
部门更换200台电脑,公司使用已有的MDT系统对每个电脑进行系统和软件安装,打印机的部署可以使用本脚本被添加到MDT的Application中,并且根据不同部门的事先安排安装。
基本的逻辑是:
1. 管理员设置好所有的电脑和打印机的配置信息。
2. 她根据参数读取本电脑所属部门,这个可以从AD服务器上的电脑账号的Location属性设置,也可以方便地使用部门电脑列表文件设置;
3. 读取该电脑所属部门的打印机列表文件,这个打印机列表文件列出所有的可被安装的打印机的名称。
4. 然后从打印机配置文件中,读取每个打印机的配置信息,比如驱动程序,IP地址等等。
5. 如果需要,删除所有的TCP/IP端口打印机。
6. 根据每个打印机,添加打印机TCP/IP端口,处理冲突,并安装打印机到客户端。
由于打印机的特性,一般来说,不可移动或者一旦放置没人愿意移动,除非升级更换等原因,所以对于用户来说它相对固定。而对于用户的使用习惯来说,一般情况有两种选择,选择最近的打印机,这是出于效率的考虑;选择适合质量要求的打印机,这是出于质量要求的考虑。同时,公司还有管理规定,比如,财务部门的只有财务使用,但是财务部门可能需要使用市场部门的高质量彩色打印机,或者所有人都可以打印到费用最低的MFP上等等,无论哪种考虑,管理员需要为相应的用户需求按照公司规定,安装适合的打印机,所以首先要做的就是分组,比如财务组的电脑列表和可以使用的打印机列表,以及初始默认打印机,并把它们记入部门电脑列表和打印机列表中,这些文件在后面将会详细解释。
然后需要做的就是打印机驱动测试,如果该打印机厂商只提供自己打包的驱动安装程序,那么本脚本程序无法支持自动部署,而需要使用.inf文件的安装驱动。打印机驱动的种类可能是ForWindows XP或者For Windows 7的,也可能是区分32位和64位系统,需要根据这些分类分别安装,而且,不同的型号的打印机,虽然使用相同的inf文件描述,但是型号描述可能不同,需要确定每个打印机所使用的型号描述。一般地,可以有两个方法获得,一是从inf文件中找到该型号的描述名称,或者在安装过程中记录下所使用的描述名称。在具体的测试中,一定要使用Windows的安装TCP/IP端口打印机的方式顺利安装一次,出现任何问题,都需要预先解决。在本脚本的测试中,测试了HP,Kyocera, Canon和Ricoh等打印机(包括MFP).
同时,本脚本还支持不同分公司(远程办公地点)的管理,这个可以通过给每个分公司一个代码来实现,后面会具体解释。
这个脚本程序还不能为定制的打印机配置的部署提供支持。
待续...