原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://coldmail.blog.51cto.com/37442/117880
我想每一位
IT
人士都面临过这样的问题,公司新添置了一台网络打印机,也就是带网卡的打印机,客户机通过安装驱动即可使用,而无需通过其他机器共享打印机的限制。如果你面临着大约
100
台左右的客户机,而需要一台一台的安装怎么办,我想这也是一个棘手的问题。下面我教大家一个通过组策略加上
VBS
脚本来实现客户机自动添加打印机的方法。
首先介绍一下环境:
1.
公司网络必须是域环境。
2.
完整的打印机驱动,并拷贝到网络任意共享的文件夹下,客户机可以访问得到。
下面我们一步一步的进行:
第一、
我们看一下脚本,自动添加打印机的脚本可以从微软的网站上找到,这里我给大家列举我自己仿照微软的脚本根据实际情况而进行修改的文件,然后我着重介绍一下我修改的地方。新建一个
.vbs
的文件我就不用说了,相比大家都已经熟知。
'Install printer port
Set objWMIService = GetObject("winmgmts:")
Set objNewPort = objWMIService.Get _
("Win32_TCPIPPrinterPort").SpawnInstance_
objNewPort.Name = "IP_10.86.229.11"
objNewPort.Protocol = 1
objNewPort.HostAddress = "10.86.229.11"
objNewPort.PortNumber = "9100"
objNewPort.SNMPEnabled = False
objNewPort.Put_
'install printer driver
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objDriver = objWMIService.Get("Win32_PrinterDriver")
objDriver.Name =
"Lexmark T642"
objDriver.SupportedPlatform = "Windows NT x86"
objDriver.Version = "3"
objDriver.FilePath=
"\\tsnserver\Software
、
(E)\Drivers\printer\lexmark\644\driver\Drivers\Print\Win_2kXP"
objDriver.InfName=
"\\tsnserver\Software (E)\Drivers\printer\lexmark\644\driver\Drivers\Print\Win_2kXP\LMAAT2DA.INF"
intResult = objDriver.AddPrinterDriver(objDriver)
'WScript.Echo intResult
'Config printer
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objPrinter = objWMIService.Get("Win32_Printer").SpawnInstance_
objPrinter.DriverName =
"Lexmark T642"
objPrinter.PortName =
"IP_10.86.229.11"
objPrinter.DeviceID =
"TSNLAN11"
objPrinter.Location =
"TSNLAN11"
objPrinter.Network = TRUE
objPrinter.Shared = False
objPrinter.ShareName = " "
objPrinter.Put_
'set default printer
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Name =
'TSNLAN11'"
)
For Each objPrinter in colInstalledPrinters
objPrinter.SetDefaultPrinter()
Next
注意:
1.
标注红色下划线的位置是根据我们的环境进行修改的,如打印机的地址、型号、打印机名字、打印机驱动文件、打印机驱动文件所在的目录。
2.
带有‘标注的基本上是注释部分,不用管它,
3.
其他语句,如果有兴趣可以研究一下具体的意思!
第二、
将我们改好的文件保存一下,当然是保存成
.vbs
的文件,存放在网络共享盘上面(所欲的域用户都可以访问)
第三、
接下来我们要对服务器进行操作了,首先如果安装了组策略编辑工具那样更好,若没有安装也没关系我们只要找到相应的
OU
然后右键直接对该
OU
进行组策略编辑,
a)
我们在组策略编辑器——计算机策略——
Windows
设置——开机——开机脚本
b)
点 击增加,然后输入我们需要共享的脚本,这里建议大家用手输入的方法,而且使用网络路径,因为我曾试过用他里面提供的增加功能,直接指向我的共享文件夹里面 的脚本文件,可是都不生效,也试过把共享的脚本文件放在那个特别长的文件夹下面,我所指的是默认提供的路径,后来客户端发现没有访问权限,于是我就手动输 入我的网络路径,也就是用
\\
这种方式,后来就可以了,不知道怎么回事,如果知道的朋友也可以告诉我一声,非常感谢。
第四、
最后就是去客户端执行
gpupdate /force
,这是刷新完组策略提示重新启动,这样估计下次开机的时候就可以使用了,是不是很方便呢?
备 注:由于时间的原因,文章写的很粗略,我想对于组策略大家应该都非常熟悉了,我就不多罗嗦了,脚本部分大家可能有疑问:添加完了,是不是客户端要更改默认 打印机呢?不用,因为安装完已经是默认的了,最后几条语句就是设置默认打印机,是不是?好了,就写到这了,有什么问题大家给我留言!