Printer setup script / utility for "local printer" on TCP/IP port in Windows (non-domain) - remove conflicts then add port and printer

Does anyone know of a utility (or does anyone know how to write a script) that can work on Windows 7 and Windows XP (it could be two separate utilities/scripts) and can:

1) Remove any TCP/IP printer ports on a given IP address
2) Add a new TCP/IP printer port on that IP address
3) Add the printer on that port and install the driver from a network path to a .inf file

You can assume the script will be run as administrator.

If it relies on a utility, ideally it would be one that comes installed with Windows, but if not that might still be fine.

This is not being used on a Windows domain, so unfortunately some potentially easy solutions along those lines aren't available.
g9194Asked:
Who is Participating?
 
RootsManConnect With a Mentor Commented:
For Windows 7, the location of the Printing Administration Scripts are in C:\Windows\System32\Printing_Admin_Scripts\en-US\.

You can use prnport.vbs to add a Standard TCP/IP Port:

cscript //NoLogo prnport.vbs -a -r IP_%1 -h %1 -me -y public -o raw -n 9100

Open in new window

- Where %1 is the IP address of the printer.


You can use prnmngr.vbs to add the printer driver:

cscript //NoLogo prnmngr.vbs -a -p %1 -m %2 -r "IP_%3"

Open in new window


Where:
- %1 is the Name of the Printer
- %2 is Name of the Printer Driver
- %3 the is IP Address of the Printer

0
 
g9194Author Commented:
Thanks, I'll plan to give that a try later.  Does it also take care of bullet #1 (removing any existing ports on that IP [and I assume by implication any printers on those ports])?
0
 
RootsManConnect With a Mentor Commented:
prnport.vbs will also allow you to remove a port with the -d parameter.

0
Cloud Class® Course: Microsoft Office 2010

This course will introduce you to the interfaces and features of Microsoft Office 2010 Word, Excel, PowerPoint, Outlook, and Access. You will learn about the features that are shared between all products in the Office suite, as well as the new features that are product specific.

 
g9194Author Commented:
It looks like -d will allow deletion of a port, but when I tried it, it gave me an error.  I'm wondering if the printer needs to be removed first so it's not using that port.  If that's it, how can I have it accomplish that - is there something that will automatically delete the port and printer on a certain IP?

cscript //NoLogo delete_port.vbs -d -r "192.168.1.200"

Unable to delete port Error 0x80041001 Generic failure
Operation DeleteInstance
Provider Win32 Provider
Description The requested resource is in use.
0
 
RootsManCommented:
Yes. Try deleting the printer first and then deleting the port that printer was using.

cscript //NoLogo prnmngr.vbs -d -p "Name of the Printer to Delete"

Open in new window

0
 
g9194Author Commented:
Hmm... the script won't necessarily know the name of the printer - it needs to be able to delete it by IP address.  Should I close this question and give partial points and then open a separate question?
0
 
RootsManCommented:
Do you really need to delete the TCP/IP port?

The name of the printer is required in order to target it for management.

To delete the TCP/IP port you'll have to free up the port by, 1. changing the port that the printer is using to something else:

cscript //NoLogo prncnfg.vbs -t -p "Printer Name" -r "IP_192.168.1.101"

Open in new window


or 2. deleting the printer:
cscript //NoLogo prnmngr -d -p "printer name"

Open in new window



BTW, once you add a new printer, if you want to make it the "Default" you can use the following code in your .vbs script:

Set WSHNetwork = CreateObject("WScript.Network")
WSHNetwork.SetDefaultPrinter "HP LaserJet 5Si"

Open in new window



0
 
g9194Author Commented:
I think I do need to delete it to prevent a conflict.

If you don't know how to delete a printer and port given ONLY an IP address, that's ok - I might be able to take the help you gave me so far and then ask that as a separate question.

Thanks!
0
 
RootsManConnect With a Mentor Commented:
The list generated by cscript prnmngr.vbs -l will show the Printer name and Port name. Maybe you can parse that list to pull out the name, or use that info when you ask a separate question.

Just curious of where do you think the conflict would be?

0
 
g9194Author Commented:
Ah, maybe there isn't one.  I guess I just assumed you couldn't have two on the same port.  I'll go ahead and accept your answers.  Thanks for the help!
0
 
g9194Author Commented:
I felt like there could have been better reading done so that so much back and forth wasn't required, but overall I was happy with the help that was provided.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.