none
关于网络打印机的脚本安装 RRS feed

  • 问题

  • 我们公司有20多台网络打印机,先前是通过一台服务器共享出来的,但最近服务器经常出错,想改成用户直接连接。请问有没有一个脚本可以连接网络打印机(通过IP或打印机的机器名)。我这边是域结构,500用户左右。如果有脚本可以凭IP安装网络打印机,就可以通过组策略放在启动项里面,将极大的减轻工作量。
    2009年9月15日 1:37

全部回复

  • 怎么没有人回答我的问题,我在在网上找到一个VBS脚本
    'Install Printer port
    Set objWMIService = GetObject("winmgmts:")
    Set objNewPort = objWMIService.Get _
    ("Win32_TCPIPPrinterPort").SpawnInstance_
    objNewPort.Name = "IP_10.0.5.42"
    objNewPort.Protocol = 1
    objNewPort.HostAddress = "10.0.5.42"
    objNewPort.PortNumber = "9100"
    objNewPort.SNMPEnabled = True
    objNewPort.SNMPCommunity = "Public"
    objNewPort.Put_


    'Install printer Driver 1
    '------------M$ default script start-------------------
    'strComputer = "."
    'Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    'Set objDriver = objWMIService.Get("Win32_PrinterDriver")
    'objDriver.Name = "operation3600"
    'objDriver.FilePath = "\\10.0.5.41\\print\\3600"
    'objDriver.InfName = "\\10.0.5.41\\print\\3600\\hpc3600e.inf"
    'objDriver.SupportedPlatform = "Windows NT x86"
    'objDriver.Version = "3"
    'intResult = objDriver.AddPrinterDriver(objDriver)
    'WScript.Echo intResult
    '-----------M$ default script end---------------------



    但是在server上运行会报错,访问遭到拒绝
    在XP下运行没反应?
    2009年9月15日 5:54
  • 呵呵 这个是从网络上找到的 自己修改过
    如果打印机是网络打印机,并且知道打印机的网络地址 即可通过脚本添加
    (粗体字部分需要根据打印机实际情况修改)

    以下复制到记事本保存为 vbs格式文件 运行即可
    '--------------------------查看和添加远程网络打印机-----------------------------'

    '   注意:需要有对方管理员权限'
    '-------------------------------------------------------------------------------'
    set ie=wscript.createobject("internetexplorer.application","event_")   '创建ie对象'
    ie.menubar=0                           '取消菜单栏'
    ie.addressbar=0                         '取消地址栏'
    ie.toolbar=0                           '取消工具栏'
    ie.statusbar=0                           '取消状态栏'
    ie.width=600                           '宽600'
    ie.height=500                           '高600'
    ie.resizable=1                          '不允许用户改变窗口大小'
    ie.navigate "about"&":blank"                   '打开空白页面'
    ie.left=fix((ie.document.parentwindow.screen.availwidth-ie.width)/2)   '水平居中'
    ie.top=fix((ie.document.parentwindow.screen.availheight-ie.height)/2) '垂直居中'
    ie.visible=1                           '窗口可见'
    with ie.document                       '以下调用document.write方法,'
    .write "<html><body bgcolor=#dddddd scroll=no>"         '写一段html到ie窗口中。'
    .write "<h2 align=center>查看电脑上安装的打印机</h2><br>"
    .write "<p align=center><br>"                 '框架内对象是类似的。'
    .write "</body></html>"
    end with

    On Error Resume Next
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    strComputer = WshNetwork.ComputerName '取本机计算机名

    Const wbemFlagReturnImmediately = &h10
    Const wbemFlagForwardOnly = &h20

    '显示电脑上的打印机'
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
    Set colItems = objWMIService.ExecQuery( _
        "SELECT * FROM Win32_Printer",,48)

        ie.document.write "<br>"
        ie.document.write "原有的打印机"
        ie.document.write "<br>"

    For Each objItem in colItems
        ie.document.write "<br>"
        ie.document.write objItem.DeviceID
    Next
    '添加端口'
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set objNewPort = objWMIService.Get _
        ("Win32_TCPIPPrinterPort").SpawnInstance_
    objNewPort.Name = "IP_192.168.0.12" '可以根据需要更改你的打印机的ip名'
    objNewPort.Protocol = 1
    objNewPort.HostAddress = "192.168.0.12" '可以根据需要更改你的打印机的ip'
    objNewPort.PortNumber = "9100" '可以根据需要更改你的打印机的端口'
    objNewPort.SNMPEnabled = False
    objNewPort.Put_

    '添加打印机'
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set objPrinter = objWMIService.Get("Win32_Printer").SpawnInstance_
    objPrinter.DriverName = "HP LaserJet 6L" '可以根据需要更改你的打印机名字,这个很重要''
    objPrinter.PortName   = "IP_192.168.0.12" '可以根据需要更改你的打印机的端口'
    objPrinter.DeviceID   = "HP LaserJet 4250n(12)" '可以根据需要更改你的打印机的标记
    objPrinter.Location = "HP LaserJet 4250n" '打印机位置信息

    objPrinter.Network = True
    objPrinter.Put_

    '再次显示打印机'
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
    Set colItems = objWMIService.ExecQuery( _
        "SELECT * FROM Win32_Printer",,48)
        ie.document.write "<br>"
        ie.document.write "********************************"
        ie.document.write "<br>"
        ie.document.write "添加后的打印机"
        ie.document.write "<br>"
        ie.document.write "********************************"
        ie.document.write "<br>"
    For Each objItem in colItems
        ie.document.write "<br>"
        ie.document.write objItem.DeviceID
    Next

     

    2009年11月23日 8:06