Windows IT Pro is the leading independent community for IT professionals deploying Microsoft Windows server and client applications and technologies.
  
  
  Advanced Search 


August 2002

Connecting to Printers


RSS
Subscribe to Windows IT Pro | See More Printing Articles Here | Reprints | Or get the Monthly Online Pass—only $5.95 a month!

Download the Code Here

Use the WshNetwork object to direct users to the right printer

Making the right printer available to the right people in larger networks or in a company in which people move around from system to system can be complicated. Using the same printer all the time doesn't make sense for telecommuters or sales people who use laptops and regularly plug in at different locations. And when several people share a computer or one person uses more than one workstation, you need some way to provide the right printer for the given conditions. A VBScript program can automatically install and connect to printers at user logon according to user or computer identity, then unmap the printer connection when the user logs off. This scenario works best on Windows NT­based OSs such as Windows XP, Windows 2000, and NT because you can create the printer connection and install the drivers in one step. However, you can also use the technique on Windows 9x computers if you've preinstalled drivers.

As I explain in "Connecting Users to Network Resources," June 2002, InstantDoc ID 24893, Windows Script Host (WSH) abstracts the interface of many Win32 objects, including WshNetwork (aka WScript.Network), a collection of network resources, shared drives, and printers. The computer name (ComputerName), username (UserName), and computer domain (UserDomain) are all properties of the WshNetwork object. WshNetwork supports several methods for network access to drives and printers. To map a printer explicitly to a port, you use the AddPrinterConnection method. To create a Windows printer connection (and automatically install the driver on XP, Win2K, or NT), use the AddWindowsPrinterConnection method, which I'll use in the examples in this article. To set the default printer for a computer, use the SetDefaultPrinter method. You can use WshNetwork to install support for shared network printers, and you can use the Select Case statement and InputBox function to build flexibility into the process.

Creating a Generic Printer Connection
Listing 1 shows the simplest way to use VBScript to install a printer. The code in this example

  • defines the variables that the script will use (at callout A) so that if you mistype a variable name later in the code, you'll receive an error message instead of creating a new variable.
  • creates a connection to the WshNetwork object (at callout B). You must create this connection before you can call on the object's properties and methods.
  • assigns the printer's Universal Naming Convention (UNC) path to the sPrintPath variable (at callout C) so that the path is easier to refer to.
  • calls the appropriate method to create the printer connection and make it the default, supplying—as an argument to the method—the variable that represents the printer path (at callout D).

When I assign a valid path in the code at callout C in Listing 1, the script connects to the specified printer if the server is an NT-based computer. To use this script in your environment, simply replace the path in callout C with your valid UNC printer path.

You can use the same script to install support for more than one printer and make one printer the default. To do so, define a separate variable for each printer, assign a separate printer path and call the AddWindowsPrinterConnection method for each variable, and call the SetDefaultPrinter method to set one of the variables as the default printer. (Default printer settings work just as the default printer settings available from the GUI do: If you make more than one printer the default, the script will accept as the default the last printer you specified.)

Creating a Computer- or User-Specific Printer Connection
The script above is a good start, but it isn't all that powerful—you haven't yet done anything that you can't accomplish with the Net Print command or the Con2prt tool in the Microsoft Windows 2000 Resource Kit. To install printers according to computer or user identity, you need to make the script retrieve the identity and perform actions based on the retrieved data. Listing 2 shows a script that installs printers according to computer identity, so long as the computer you're running the script on has a connection to the print server.

This script first defines the variables and establishes a connection to the WshNetwork object. However, the code that the script introduces in Listing 2 exploits the Select Case statement, which makes this script much more powerful. (For a detailed discussion of the Select Case statement, see "Connecting Users to Network Resources.") Including the Select Case statement permits the script to read the local computer name and make a decision about which printer to install based on that information. The value of the computer name determines the value for sPrintPath, which is then plugged into the AddWindowsPrinterConnection and SetDefaultPrinter methods.

   Previous  [1]  2  Next 


Top Viewed ArticlesView all articles
Battery Life Issues Almost Certainly Not Windows 7's Fault

While Microsoft is still investigating a notebook battery life issue that was supposedly caused by Windows 7, some interesting trends have emerged. ...

Confirmed: Battery Life Issues Not Windows 7's Fault

Microsoft on Monday issued a lengthy statement about the recent Windows 7 battery controversy, echoing my assessment from earlier in the day, but backing it up with hard, cold evidence. ...

Getting your iPhone to Sync with Exchange 2003

Follow these steps to use an iPhone with Exchange. ...


Scripting Whitepapers Three Ways to Prevent Insider Risk within Your SCCM-Managed Environment

From Development to Production: Streamlining SharePoint Deployment with DocAve Deployment Manager

Related Events Deep Dive into Windows Server 2008 R2 presented by John Savill

Managing IT Across Multiple Locations

Cutting Costs with Client Management

Check out our list of Free Email Newsletters!

Scripting eBooks Keeping Your Business Safe from Attack: Encryption and Certificate Services

Best Practices for Managing Linux and UNIX Servers

Building an Effective Reporting System

Related Scripting Resources Introducing Left-Brain.com, the online IT bookstore
Looking for books, CDs, toolkits, eBooks? Prime your mind at Left-Brain.com

Discover Windows IT Pro eLearning Series!
Clear & detailed technical information and helpful how-to's, all in our trademark no-nonsense format


Windows IT Pro Home Register FAQ for Windows WinInfo News
Europe Edition About Us Contact Us/Customer Service Media Kit Affiliates / Licensing  
SQL Server Magazine Office & SharePoint Pro DevProConnections IT Job Hound
Left-Brain.com Technology Resource Directory asp.netPRO ITTV Windows SuperSite 
 
 Windows IT Pro is a Division of Penton Media Inc.
 © 2010 Penton Media, Inc. Terms of Use | Privacy Statement