Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1767
  • Last Modified:

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.
0
g9194
Asked:
g9194
  • 6
  • 5
3 Solutions
 
RootsManCommented:
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
 
RootsManCommented:
prnport.vbs will also allow you to remove a port with the -d parameter.

0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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
 
RootsManCommented:
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

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 6
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now