通过组策略自动给客户机添加网络打印机
2008-12-08 10:00
232 查看
我想每一位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,这是刷新完组策略提示重新启动,这样估计下次开机的时候就可以使用了,是不是很方便呢?
备注:由于时间的原因,文章写的很粗略,我想对于组策略大家应该都非常熟悉了,我就不多罗嗦了,脚本部分大家可能有疑问:添加完了,是不是客户端要更改默认打印机呢?不用,因为安装完已经是默认的了,最后几条语句就是设置默认打印机,是不是?好了,就写到这了,有什么问题大家给我留言!本文出自 “点滴成就非凡” 博客,请务必保留此出处http://coldmail.blog.51cto.com/37442/117880
首先介绍一下环境:
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,这是刷新完组策略提示重新启动,这样估计下次开机的时候就可以使用了,是不是很方便呢?
备注:由于时间的原因,文章写的很粗略,我想对于组策略大家应该都非常熟悉了,我就不多罗嗦了,脚本部分大家可能有疑问:添加完了,是不是客户端要更改默认打印机呢?不用,因为安装完已经是默认的了,最后几条语句就是设置默认打印机,是不是?好了,就写到这了,有什么问题大家给我留言!本文出自 “点滴成就非凡” 博客,请务必保留此出处http://coldmail.blog.51cto.com/37442/117880
相关文章推荐
- 通过组策略自动给客户机添加网络打印机
- 通过组策略自动给客户机添加网络打印机
- 通过组策略自动给客户机添加网络打印机
- 通过组策略添加网络打印机的脚本
- 在 Windows Server 2008 中通过组策略向计算机或用户部署网络打印机
- 在组策略中使用脚本为域用户添加网络打印机
- 如何在 Windows Server 2008 中通过组策略向计算机或用户部署网络打印机?
- 技术QA:如何在 Windows Server 2008 中通过组策略向计算机或用户部署网络打印机? 推荐
- 何在 Windows Server 2008 中通过组策略向计算机或用户部署网络打印机?
- 自动添加网络打印机脚本『罗斌原创』
- 添加网络打印机方法
- Windows7中如何添加网络打印机
- 客户机通过WINS服务器自动找到WPAD
- windows7如何添加windowsXP的网络打印机
- WIN7添加一个网络位置,每次开机都是处于断开状态,怎么样才能自动连接。
- 电脑连接网络打印机时,用户名自动出来GUEST用户名
- 打印机安装与共享(服务端与打印机连接,客户端通过网络共享访问)
- 域环境客户端自动添加共享打印机脚本模板
- zabbix通过自动发现功能实现自动识别网络设备接口