Introduction to RemovePrinterConnection
Occasionally Windows logon scripts need the RemovePrinterConnection method. So I will provide two worked
examples of how to remove unwanted printer icons from the Printers and Faxes folder. Topics for RemovePrinterConnection
I find that printer logon scripts do not need RemovePrinterConnection as much as mapping network drives
need RemoveNetworkDrive. The reason is that if you map the same printer repeatedly you don't get the error: 'The local device name is already in use'. Surprisingly, the script just maps the new printer
over the old one. Nevertheless, removing an existing printer is useful when your scripts are at the testing stage and you don't want to keep going to
the Printer and Faxes folder, right clicking the printer and selecting: Delete. To get rid of a printer icon, most of the time, all that you need is the method, RemovePrinterConnection and the printer name.
For example, objNetwork.RemovePrinterConnection
strUNCPrinter (Network Printer) or objNetwork.RemovePrinterConnection "Epson" (Local Printer)
Mastering the basics of RemovePrinterConnection are easy. If there is a danger it's adding, un-needed, unnecessary syntax. For instance there is no need for a comma before the printer name. Even mastering the
extra arguments is not difficult, however, in this instance you do need commas between the last three arguments, here is the full syntax:
RemovePrinterConnection strDriveLetter, bForce, bUpdateProfile It was a long time before I realized that the prefix b, in bForce and bUpdateProfile meant Boolean. Once I understood this significance,
it became obvious why there were only two possible values, true or false. bForce means remove
the printer - even if its in use. (My friend 'Mad' Mick thinks bForce means brute force and he is not far wrong.) Setting bUpdateProfile to "true" tells VBScript to update the user's profile.
Even though RemovePrinterConnection is straightforward, we still need preparation. So we must create a printer, otherwise, there would be nothing to remove and all you would get is Error: 'This
network connection does not exist'
- You need an printer before the script has any icons to remove from the Printers and Faxes folder.
'' PrintersLong.vbs - Windows Logon Script example. ' VBScript - to map a network printer ' Author Guy Thomas http://computerperformance.co.uk/ ' Version 2.2 - April 24th 2005 '
-----------------------------------------------------------------' Option Explicit Dim objNetwork Dim strUNCPrinter strUNCPrinter = "\\alan\Epson" Set objNetwork =
CreateObject("WScript.Network") objNetwork.AddWindowsPrinterConnection strUNCPrinter WScript.Echo "Check the Printers folder for : " & strUNCPrinter
WScript.Quit
' End of Guy's Windows
logon script.
Instructions for RemovePrinterConnection
- Copy and paste the script below into notepad or get a script editor such as OnScript (free download).
- Save the file with .vbs extension e.g. RemovePrinterConnection.vbs.
- Double click the VBScript and then launch your Printers and Faxes folder. There should be no printer corresponding to strUNCPrinter.
' RemovePrinterConnection.vbs - Windows logon script ' VBScript to - Network Printer ' Author Guy Thomas http://computerperformance.co.uk/ ' Version 1.4 - April 24th 2005 '
------------------------------------------------------' Option Explicit Dim objNetwork, strUNCPrinter strUNCPrinter = "\\LittleServer\win2pdf"
Set objNetwork = CreateObject("WScript.Network") '
Section which removes the network printer objNetwork.RemovePrinterConnection strUNCPrinter
WScript.Echo "Check Printers folder NO: " & strUNCPrinter Wscript.Quit
' Guy's Logon Script ends here
VBS Learning Points
Note 1: The basic RemovePrinterConnection is a simple command with no commas and only one argument - the drive letter. Note 2: If you need to remove a local printer, all you need to do is place its
name in quotes "HP Laserjet 6l"
Just in case you need the bForce or the bUpdateProfile switch, here is an example of the full RemovePrinterConnection command with all three arguments. Instructions to RemovePrinterConnection
- You need to create a printer before this script can delete its icon from the Printers and Faxes folder.
- Copy and paste the script below into notepad.
- Save the file with .vbs extension e.g. RemPrinterBForce.vbs.
- Double click the VBScript and then launch your Printers and Faxes folder. There should be no printer corresponding to strUNCPrinter name.
' ' RemPrinterbForce.vbs - Windows logon script sample ' VBScript to - Network Printer ' Author Guy Thomas http://computerperformance.co.uk/ ' Version 2.5 -
April 24th 2005 ' ------------------------------------------------------' Option Explicit Dim objNetwork, strUNCPrinter, bForce, bUpdateProfile strUNCPrinter = "\\LittleServer\win2pdf" bForce = "True"
bUpdateProfile = "False"
Set objNetwork = CreateObject("WScript.Network") ' Section which removes the network printer objNetwork.RemovePrinterConnection strUNCPrinter, _ bForce, bUpdateProfile
WScript.Echo "Check Printers folder NO: " & strUNCPrinter Wscript.Quit
' Guy's Sample Logon Script ends here
Learning Points
Note 1: Spot the bForce, and bUpdateProfile commands, "true" and "false" respectively. You may wish to replace with "true", "true" in your production script. Note 2: In the
RemoveNetworkDrive method the bForce makes a difference, but here with RemovePrinterConnection it does not make much difference. My point is that even without bForce, the script deleted my printer, even
though it had a print job. I even explicitly added bForce "False". Anyway, no big deal.
RemovePrinterConnection is a logon script method for deleting printers. One use is clearing up old printers, but my main use is in testing when I want to save a journey to the
Printers and Faxes folder.
See Also● Logon Script Home |