2012-12-05 117 views
0

我有一個Windows 7 64位電腦,我試圖添加一個本地打印機,它會自動安裝驅動程序並在打印完成後共享打印機。 該端口是環回IP地址(127.0.0.1),它使用Zebra(ZDesigner LP 2844)驅動程序。 (你可以在這裏:http://www.zebra.com/us/en/support-downloads/desktop/lp-2844.html如何在Windows 7上使用VBScript添加本地打印機?

我現在的腳本的偉大工程在XP,但無法在Windows 7這麼好它與錯誤 「Microsoft VBScript運行時錯誤出現:ActiveX組件不能創建對象: Port.Port.1是爲了我的劇本AddPort.vbs

下面的腳本被稱爲AddPort.vbs

'ADDING: 

dim oPort 
dim oMaster 
set oPort = CreateObject("Port.Port.1") 
set oMaster = CreateObject("PrintMaster.PrintMaster.1") 

wscript.echo "Adding port to local machine...." 

'Indicate where to add the port. Double quotes ("") stand for the local computer, which is the default, or put "\\servername" 
oPort.ServerName = "" 

'The name of the port cannot be omitted. 
oPort.PortName = "CustomPortName" 

'The type of the port can be 1 (TCP RAW), 2 (TCP LPR), or 3 (standard local). 
oPort.PortType = 3 

'For TCP RAW ports. Default is 9100. 
oPort.PortNumber = 9101 

'Try adding the port. 
oMaster.PortAdd oPort 

'Test for the status. 
If Err <> 0 then 
wscript.echo "Error " & Err & " occurred while adding port" 
End If 

下面的腳本被稱爲AddPrinter.vbs 此腳本錯誤「Microsoft VBScript運行時錯誤:ActiveX組件不能創建對象:PrintMaster.PrintMaster 0.1

' Adding a Printer 
' The sample code in this section creates any required objects, adds a printer to a remote server, and configures some driver and port information. 

dim oMaster 
dim oPrinter 

wscript.echo "Adding VirtualPrinter printer to local machine...." 

'The following code creates the required PrintMaster and Printer objects. 
set oMaster = CreateObject("PrintMaster.PrintMaster.1") 
set oPrinter = CreateObject("Printer.Printer.1") 

'The following code specifies the name of the computer where the printer will be added. To specify the local 
'computer, either use empty quotes (「」) for the computer name, or do not use the following line of code. If 
'ServerName is not set, the local computer is used. Always precede the name of a remote computer with two backslashes (\\). 
oPrinter.ServerName = "" 

'The following code assigns a name to the printer. The string is required and cannot be empty. 
oPrinter.PrinterName = "VirtualPrinter" 

'The following code specifies the printer driver to use. The string is required and cannot be empty. 
oPrinter.DriverName = "ZDesigner LP 2844" 

'The following code specifies the printer port to use. The string is required and cannot be empty. 
oPrinter.PortName = "LoopBack" 

'The following code specifies the location of the printer driver. This setting is optional, because by default 
'the drivers are picked up from the driver cache directory. 
'oPrinter.DriverPath = "c:\drivers" 

'The following code specifies the location of the INF file. This setting is optional, because by default the INF 
'file is picked up from the %windir%\inf\ntprint.inf directory. 
'oPrinter.InfFile  = "c:\winnt\inf\ntprint.inf" 

oPrinter.PrintProcessor = "winprint" 

'The following code adds the printer. 
oMaster.PrinterAdd oPrinter 

'The following code uses the Err object to determine whether the printer was added successfully. 
if Err <> 0 then 
    wscript.echo "Error " & Err & " occurred while adding VirtualPrinter" 
else 
    wscript.echo "Printer added successfully" 
end if 

' To configure other printer settings, such as comments, create a Printer object and then call PrintMaster's method PrinterSet. 

wscript.echo "Configuring printer...." 

oPrinter.Comment = "Virtual printer to capture labels" 
oPrinter.ShareName = "VirtualPrinter" 
oPrinter.Shared = true 
oPrinter.Local = true 

oMaster.PrinterSet oPrinter 
if Err <> 0 then 
    wscript.echo "Error " & Err & " occurred while changing settings for VirtualPrinter" 
end if 

有沒有我可以創建一個本地打印機,將驅動程序的任何其他方式,端口號和端口名稱和共享名稱,並在Windows 7中使用VBScript打印處理器???

預先感謝您,最好的回覆將獲得積分。

回答

0

我發現了另一種自動添加打印機的方法,首先我創建了一個批處理文件,然後使用Windows 7自帶的prnmngr.vbs爲我自動添加打印機。爲此,我已經在機器上安裝了Zebra驅動程序(但對於其他任何類型的打印機,其概念都是一樣的)。然後我運行了批處理文件。

以下所示爲我做到了,我已經添加了批處理文件文本的位置: 名稱的文件:AddPrinter.bat

rem first change the directory to the script location 
cd %WINDIR%\System32\Printing_Admin_Scripts\en-US\ 
rem vbs script path: %WINDIR%\System32\Printing_Admin_Scripts\en-US\Prnmngr.vbs 

rem first add the port, specify name of port, assign it an IP Address, specify the type and the Port. 
cscript prnport.vbs -a -r "LoopBack" -h 127.0.0.1 -o raw -n 9100 
cscript prnport.vbs -a -r "LoopBack_2" -h 127.0.0.1 -o raw -n 9101 
pause 

rem specify the name of the new printer, specify the driver, specify the port it will use. 
cscript prnmngr.vbs -a -p "VirtualPrinter" -m "ZDesigner LP 2844" -r "LoopBack" 
pause 

cscript prnmngr.vbs -a -p "Zebra LP2844" -m "ZDesigner LP 2844" -r "USB0001" 
rem cscript prnmngr.vbs -a -p "Zebra GK420d" -m "ZDesigner GK420d" -r "LPT1:" 
rem cscript prnmngr.vbs -a -p "Zebra GC420d" -m "ZDesigner GC420d" -r "COM1:" 
pause 

NET STOP SPOOLER 
NET START SPOOLER 
pause 

要定製這一點,你可以使用這些網站作爲參考;

http://technet.microsoft.com/en-us/library/cc725868(v=ws.10).aspx

http://technet.microsoft.com/en-us/library/bb490974.aspx

http://blog.ogwatermelon.com/?p=3489

http://winadminnotes.wordpress.com/2010/02/19/how-to-manage-printers-and-printer-drivers-remotely-from-command-line/

http://technet.microsoft.com/en-us/library/cc754352(v=ws.10).aspx

+1

可憐你的文件不再存在或不公開。我一直在這樣的事情上絞盡腦汁。 – NFX

+0

沒問題。我已經將此批處理文件的文本複製到了此線程中。試一試... – nimblebit

2

這正是你所需要的,對於Windows 7:

稍後顯示的七個打印機實用程序位於路徑中未列出的C:\Windows\System32\Printing_Admin_Scripts\en-US文件夾中。因此,您必須切換到此文件夾才能運行實用程序。而且,由於這些實用程序旨在從命令行運行,因此需要從命令提示符窗口啓動它們,並使用Windows Script Host的基於命令行的腳本宿主(Cscript.exe)運行它們。

Windows 7的VBScript的打印實用程序

 
VBScript File | What it does 
--------------------------------------------- 
Prncnfg.vbs  | Printer configuration 
Prndrvr.vbs  | Printer driver configuration 
Prnjobs.vbs  | Print job monitoring 
Prnmngr.vbs  | Printer management 
Prnport.vbs  | Printer port management 
Prnqctl.vbs  | Printer queue management 
Pubprn.vbs  | Publish a printer to Active Directory 

希望這個作品的

+0

prnport似乎只允許TCP端口,而不是本地端口,如「C:\ TEMP」。在我的情況下,我安裝了打印機,但無法以編程方式提供所需的端口。 – NFX

+0

請檢查我的更新答案,它顯示瞭如何在Windows 7中使用批處理文件添加端口。必須預先安裝打印機驅動程序才能正常工作。 – nimblebit

相關問題