Saturday, January 19, 2008

Adding a Printer on a Remote Computer

These two scripts will add an IP port and install a printer on a remote machine. This is good to add a local IP printer on a remote workstation. For this script, you need to install prnadmin.dll. The prnadmin.dll file is available in the Windows Server 2003 Resource Kit Tools.

Add an IP port:
'----------------------------
'http://vbsbob.blogspot.com/
'Required files:prnadmin.dll
'prnadmin.dll is available
'in the Windows Resource Kit located
'at http://www.microsoft.com
'----------------------------


dim oPort
dim oMaster
set oPort = CreateObject("Port.Port.1")
set oMaster = CreateObject("PrintMaster.PrintMaster.1")
Set WshShell = WScript.CreateObject("WScript.Shell")

'Edit for comouter name
strMachineName = "\\computer"

'Edit for IP port name
strPortName = "Name of the Port"

'Edit for IP address
strIPAdress = "Insert Printer IP Address Here"


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

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

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

'Mandatory for TCP ports. This is the address of the device to which the port connects.
oPort.HostAddress = strIPAdress

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

'Enable or disable SNMP.
oPort.SNMP = false

'Applies to TCP LPR name, default is LPR
oPort.QueueName = "Queue"

'Byte counting or double spool applies to TCP LPR ports, is disabled by default.
oPort.DoubleSpool = false

'Try adding the port.
oMaster.PortAdd oPort
'Test for the status.
If Err <> 0 then

'An error occurred.
WshShell.Popup "Error " & Return & " returned during setup.", 10, "Printer port add.", 16
end if

WshShell.Popup "IP Port Add Successful", 10, "Install Status", 64

Add a Printer on a Remote Computer:

'----------------------------
'http://vbsbob.blogspot.com/
'Required files:prnadmin.dll
'prnadmin.dll is available
'in the Windows Resource Kit located
'at http://www.microsoft.com
'----------------------------

dim oMaster
dim oPrinter
Set WshShell = WScript.CreateObject("WScript.Shell")
set oMaster = CreateObject("PrintMaster.PrintMaster.1")
set oPrinter = CreateObject("Printer.Printer.1")

'Edit for Computer Name
'name of computer you want to add IP port to
strMachineName = "enter computer name here"

'Edit for Printer Name. This is the name users will see when selecting this printer
strPrinterName = "printer display name"

'Edit for Printer Driver Name. This specifies the printer driver to use.
'This must match the print driver name exactly.
'The string is required and cannot be empty.
'Example below is for the HP LaserJet 9040 Post Script
strDriverName = "HP LaserJet 9040 PS"

'Edit for the IP Port Name
'change aaa.bbb.ccc.ddd with the IP address of the printer
strPortName = "IP_aaa.bbb.ccc.ddd"

'Edit for the Driver Path.
'Where you unzipped the printer driver files to.
strDriverPath = "\\computer name\share name\"

'Edit for the INF path. Usually the same as the driver path plus the INF file
'point to where you unzipped the driver files
strINF = "\\computer name\share name\HP LaserJet 9040 PS.inf"


oPrinter.ServerName = strMachineName
oPrinter.PrinterName = strPrinterName
oPrinter.DriverName = strDriverName
oPrinter.PortName = strPortName
oPrinter.DriverPath = strDriverPath
oPrinter.InfFile = strINF

'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
'An error occurred
WshShell.Popup "Error " & Return & " returned during setup.", 10, "Printer add.", 16
end if

WshShell.Popup "Printer Add Successful", 10, "Install Status", 64

3 comments:

mahesh said...

Good Post! Very informative, glad that you are going to continue writing things like this! Computer Installation

Anonymous said...

When trying this i keep getting the "Invalid Printer Name", seems to be at the oPort.ServerName line. Anybody have any ideas please?

pphread said...

I get an error when running it.
Line:50
Char: 1
Error: The parameter is incorrect
Code:80070057
Source: (null)

Anyone know what/why this is?