• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 3333
  • Last Modified:

VBScript Remove Printer not working

I have a script for a while now, which runs when a user logs on.
It adds printers and sets the default. Users are running Windows XP.

Now I want to remove a printer, but I can't get it work.
When I try
objNetwork.RemoveWindowsPrinterConnection strUNCPrinter
I get the error
"Object doesn't support this property or method:RemoveWindowsPrinterConnection"

This happens no matter which printer I try to remove, so its not an error in my printername.
Any ideas?
Option Explicit
 
Dim objnetwork, strUNCPrinter
 
Set objNetwork = CreateObject("WScript.Network")
 
' This works
strUNCPrinter = "\\myprinterserver\W4-HPLJP3005"
objNetwork.AddWindowsPrinterConnection strUNCPrinter
objNetwork.SetDefaultPrinter strUNCPrinter
 
' This doesn't
strUNCPrinter = "\\myprinterserver\W3-HPLJ4200"
objNetwork.RemoveWindowsPrinterConnection strUNCPrinter
 
Set objNetwork = Nothing

Open in new window

0
jdhackett
Asked:
jdhackett
  • 4
  • 4
1 Solution
 
ou_doberCommented:
I noticed that objNetwork.RemoveWindowsPrinterConnection should be objNetwork.RemovePrinterConnection.  Give that a try.

Option Explicit
 
Dim objnetwork, strUNCPrinter
 
Set objNetwork = CreateObject("WScript.Network")
 
strUNCPrinter = "\\myprinterserver\W4-HPLJP3005"
objNetwork.AddWindowsPrinterConnection strUNCPrinter
objNetwork.SetDefaultPrinter strUNCPrinter
 
strUNCPrinter = "\\myprinterserver\W3-HPLJ4200"
objNetwork.RemovePrinterConnection strUNCPrinter
 
Set objNetwork = Nothing

Open in new window

0
 
jdhackettAuthor Commented:
Thanks. RemovePrinterConnection does work.
However, it will give an error if the printer if already removed.
How can I do error handling, so that this message is suppressed?
0
 
ou_doberCommented:
Add this after Line 6 to the code provided above.

On Error Resume Next
On Error GoTo 0

Open in new window

0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
jdhackettAuthor Commented:
Is there an err.escription like in normal vb?
0
 
ou_doberCommented:
jdhackett,

I am not clear on what you are asking.  Are you wanting to display an error message?
0
 
jdhackettAuthor Commented:
Sorry, I could have put that a lot better!
I'd still like an error message displayed if there is an issue when the printers are added.
So that the user will call me and I can investigate.
However, I don't want the message when I'm removing printers.
Is there a way to do that? Thanks for your great help so far.
0
 
ou_doberCommented:
Just put the error suppression after the adding of the printer. I also added a error message that can be changed if the default printer does not install.  Is that better?  :)

ou_dober

Option Explicit
 
Dim objnetwork, strUNCPrinter
 
Set objNetwork = CreateObject("WScript.Network")
 
strUNCPrinter = "\\myprinterserver\W4-HPLJP3005"
objNetwork.AddWindowsPrinterConnection strUNCPrinter
objNetwork.SetDefaultPrinter strUNCPrinter
    If Err.Number Then
        Wscript.Echo "W4-HPLJP3005 could not be installed"
        Err.Clear
    End If
 
 
On Error Resume Next
On Error GoTo 0
 
strUNCPrinter = "\\myprinterserver\W3-HPLJ4200"
objNetwork.RemovePrinterConnection strUNCPrinter
 
Set objNetwork = Nothing

Open in new window

0
 
jdhackettAuthor Commented:
Great work!
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.

Join & Write a Comment

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

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