打印机安装批处理
打印机安装很费时间,一台台装装到吐血,重装个系统又要装。不如做个批处理。
做法是手动在服务器上装好打印机,然后批处理添加打印机。
这次只试了批处理的写法,VBS的试了一下没有成功就不写出来了。
查看说明:rundll32 printui.dll,PrintUIEntry /?
下面是代码:文本保存成bat即可。 @echo off REM # 关闭显示 cls echo REM # 清屏 rundll32 printui.dll,PrintUIEntry /in /n \\192.168.4.100\HPLaserJ rundll32 printui.dll,PrintUIEntry /y /n \\192.168.4.100\HPLaserJ |
看到一种更好的写法,无报错,一闪而过,上面那个装驱动时还要配合着点一下确定,下面这个就不用。
rem 行政部hp1606dn打印机 改进 cls Title [行政部hp1606dn打印机安装] ::begin----------------------------------- rundll32 printui.dll,PrintUIEntry /ga /c\\%ComputerName% /n\\192.168.4.100\HPLaserJ start /wait sc \\%ComputerName% stop spooler start /wait sc \\%ComputerName% start spooler ::end----------------------------------- |
实际测试表明:打印机服务器的驱动必须适合客户端。
比如我是64位系统,用这个脚本连32位服务器,会不成功,因为驱动不匹配。
所以还是弄两台打印机服务器吧,购买打印机的时候也建议购买网口打印机。
多台打印机可以做成选择的,VBS写法如下:
ScriptNameLen = len(WScript.ScriptName) ScriptFullNameLen = len(WScript.ScriptFullName) ScriptPath = left(WScript.ScriptFullName, ScriptFullNameLen - ScriptNameLen) Set Shell = CreateObject("Wscript.Shell") strBoxText = "输入数字,添加对应的打印机:" & vbCrLf & vbCrLf strBoxText = strBoxText & "1 -> 行政部打印机" & vbCrLf strBoxText = strBoxText & "2 -> 销售部打印机" & vbCrLf strBoxText = strBoxText & "3 -> 人事部打印机" & vbCrLf strBoxText = strBoxText & "4 -> 行政+销售打印机" & vbCrLf
InVar = InputBox (strBoxText ,,1) Select Case InVar Case "" ' NOP Case "1" ' A打印机 WshNetwork.AddWindowsPrinterConnection "\\192.168.4.100\HPLaserJ" WshNetwork.SetDefaultPrinter "\\192.168.4.100\HPLaserJ" Case "2" ' B打印机 WshNetwork.AddWindowsPrinterConnection "\\B打印机" WshNetwork.SetDefaultPrinter "\\B打印机" Case "3" ' C打印机 WshNetwork.AddWindowsPrinterConnection "\\C打印机" WshNetwork.SetDefaultPrinter "\\C打印机" Case Else ' 安装AB,默认A打印机 WshNetwork.AddWindowsPrinterConnection "\\192.168.4.100\HPLaserJ" WshNetwork.AddWindowsPrinterConnection "\\B打印机的位置" WshNetwork.SetDefaultPrinter "\\192.168.4.100\HPLaserJ" End Select WScript.Quit |
就到这里吧,还没有大批量部署测试过,不过效果应该不错。