Pregunta

I have a Windows 7 64bit pc, I'm trying to add a Local Printer which automatically installs the driver and shares the printer once it is done. The port is a Loopback IP Address (127.0.0.1) and it uses the Zebra (ZDesigner LP 2844) Driver. (Which you can get here: http://www.zebra.com/us/en/support-downloads/desktop/lp-2844.html )

My current script works great on XP but not so good on Windows 7. It comes up with the error "Microsoft VBScript runtime error:ActiveX component can't create object: 'Port.Port.1' for my script AddPort.vbs

The following script is called 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

The Following script is called AddPrinter.vbs This script shows the error "Microsoft VBScript runtime error:ActiveX component can't create object: PrintMaster.PrintMaster.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

Is there any other way I can create a Local Printer, Set the Driver, Port Number and Port Name and Share Name and Print Processor using vbscript in Windows 7???

Thank you in advance, the best response will receive points.

¿Fue útil?

Solución 2

I found another way to automate adding the printer, first I created a batch file then I used the prnmngr.vbs which comes with Windows 7 to automatically add the printer for me. For this to work I already had the Zebra driver installed on the machine (but the concept would be the same for any other type of printer). Then I ran the batch file.

Following shows how I did it, I've added the batch file text here: Name the file: 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

To customise this you can use these websites as a reference;

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

Otros consejos

This is just what you need, for Windows 7:

The seven printer utilities, shown later, are located in the C:\Windows\System32\Printing_Admin_Scripts\en-US folder, which is not listed in the path. Therefore, you must actually change to this folder in order to run the utilities. And, since these utilities are designed to be run from the command line, you need to launch them from a Command Prompt window and run them using Windows Script Host's command-line-based script host (Cscript.exe).

Windows 7's VBScript printing utilities

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

Hope this works for you

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top