2012年1月6日 星期五

使用VB Script安裝網路印表機驅動

將以下文字存成*.VBS的檔案,再修改相關參數即可
(連接埠IP、INF路徑、驅動程式模組與名稱)

 '本例以HP1022N做示範
Set objWMIService = GetObject("winmgmts:")
Set objNewPort = objWMIService.Get _
("Win32_TCPIPPrinterPort").SpawnInstance_

'設定連接埠IP
objNewPort.HostAddress = "192.168.61.101"    '網路印表機IP
objNewPort.Name = "IP_192.168.61.101"        '印表機連接埠名稱

'設定連接埠Protocol
objNewPort.Protocol = 1                '1: RAW   2:LPR
objNewPort.PortNumber = "9100"            '印表機連接埠號 RAW=9100,LPR=515
objNewPort.Queue="LPR" 'LPR
objNewPort.ByteCount="TRUE"            '啟用LPR位元組計數

'設定是否使用SNMP
objNewPort.SNMPEnabled = False            '是否使用SNMP
objNewPort.Put_

'設定印表機驅動路徑與名稱
PrinterDriver_inf= ".\HP1022N\HPLJ1020.inf"    '驅動程式inf檔案位置
Printer_Model = "HP LaserJet 1022n"        '驅動程式模組
Printer_Name = "HP LaserJet 1022n"        '印表機名稱

'開始安裝(以下不可變更)
sCmd = "rundll32.exe printui.dll,PrintUIEntry /if /b """ &Printer_Name& """ /f """ _
& PrinterDriver_inf &""" /r" _
& " """ &objNewPort.Name& """ /m """&Printer_Model&""

cmd = "control printers"
DefaultPrint = "rundll32 printui.dll,PrintUIEntry /y /n """ &Printer_Name&""

Set oShell = CreateObject("WScript.Shell")
oShell.Run sCmd, 1, True
oShell.Run cmd
oShell.Run DefaultPrint

WScript.Echo Printer_Name&" 安裝完成!"

10 則留言:

  1. 您好:
    想請教一下
    這程式碼如何運用在X64的機器上面?
    需要改哪邊呢?

    回覆刪除
    回覆
    1. '設定印表機驅動路徑與名稱
      PrinterDriver_inf= ".\HP1022N\HPLJ1020.inf" '驅動程式inf檔案位置
      Printer_Model = "HP LaserJet 1022n" '驅動程式模組
      Printer_Name = "HP LaserJet 1022n" '印表機名稱

      1.驅動程式inf檔案位置,這個要指向x64的驅動程式。
      2.驅動程式模組,則要開啟上述的inf檔,來查看對應的名稱。
      3.印表機名稱,同第2點即可。

      刪除
    2. 您好~感謝您的回覆

      我的問題是

      我使用WIN7 64BIT 執行後出現操作無法完成

      不知道是哪邊出了問題?

      刪除
    3. Sorry 由於我沒遇過這樣的問題,所以幫不上忙~"~

      刪除
    4. 近來手邊陸續用了x64系統電腦,曾過了解,只要驅動程式是對的,上面程式是沒問題的一樣可以用。
      但要注意的是,x86和x64的驅動程式設定檔.inf可能會是不同一個檔,這邊要自行修正,指向對應的檔案即可。

      刪除
  2. 這方法要注意只能用在全新安裝印表機,若是公司內部有多台同品牌印表機就要修改成不要再重新載入驅動程式。不然裝第一台後第二台裝不進去還會出現錯誤訊息。

    回覆刪除
    回覆
    1. 我沒遇到過這問題,我公司同時有Ricoh C2501兩台,Ricoh C3001一台,使用Ricoh PCL6通用驅動分別安裝同樣理光的C2501兩台,C3001一台,沒遇到會出錯。但大家自行留意看看。

      刪除
  3. 請問能否寫出列印喜好設定裡面預設黑白單面

    回覆刪除
  4. 這個我有試著找過,但找不到可以改預設值的地方,改機碼也沒用。如果你有找到新方法,也請分享一下,謝謝。

    回覆刪除