In our environment, the standard NDPS printer install options didn't quite fit the bill. Since we are a school system, most of our computers are shared by many users and pushing down printers based on users didn't work well. We needed a solution to assign printers based on computer rather than user. While it is possible to accomplish this using workstation policies in NDS, our workstations also move quite frequently which creates a lot of workstation group manipulation to keep the printers right.
We decided that the best option was to give a handful of users at each school a tool which would allow them to maintain the installed printers for each computer themselves. While the NDPS manager that comes with NetWare 5.1 did the job, it did not help us keep consistent printer names on the computers. Most often, people would just accept the defaults which resulted in ugly printer names like pt-office-hp4000-1.we.es.rsd2.
Our solution involves JRB Util's pnsetup and a custom wrapper program* that gives the users a nice interface for using it. The users are presented with a list of installable printers as well as a list of the printers which are currently installed. They can then install new printers, remove currently installed printers, and change the default printer.
This solution uses 5 files. (Four are included here. One can be purchased as part of the JRB Utilities package.)
ndpsmgr.exe -- This is the wrapper executable for pnsetup. It reads the contents of the ndpsmgr.ini to determine what printers are available to be installed.
ndpsmgr.ini -- This is the configuration file for the wrapper. It lists the NDS context where the printers are, the "pretty" printer names which will be used for installing the printer, and the common name of the printer in NDS.
drvsign.exe -- This utility is launched by ndpsmgr.exe just before the printer install is launched. It watches for the annoying Windows digital signature missing error on Windows 2000 and automatically clicks the Yes button so the user doesn't have to worry about it.
pnsetup.exe -- This is the JRB Utility that actually does the printer install. It is the GUI version of the utility, although any version should work fine.
vdsrun50.dll -- This contains the runtime libraries for the Visual Dialog Script programming language (www.dialogscript.com). Both ndpsmgr.exe and drvsign.exe rely on vdsrun50.dll being in the path to operate.
The ini file contains the following settings in the general section:
options=5 (Number of printers available)
context=we.es.rsd2 (NDS context where printers are located in the tree)
jrbpath=v:\jrbutils (Path to ptsetup.exe)
The options section of the ini file contains the "pretty" names that will be used when installing the printers.
1=HP Laser in Computer Lab
2=HP Deskjet in Computer Lab
3=Lexmark Color Laser in Office
4=Lexmark Laser in Office
5=Lexmark Color Laser in Media Center
For each of the printer options listed in the option section, there is also a section which gives the common name that is listed in NDS.
[HP Laser in Computer Lab]
[HP Deskjet in Computer Lab]
[Lexmark Color Laser in Office]
[Lexmark Laser in Office]
[Lexmark Color Laser in Media Center]
*The wrapper was written specifically for Windows 2000, but also works on Windows XP.
- The runtime has been updated and replaced with vdsrun50.dll.
- An additional feature has been added that utilizes the pndeljob.exe JRB utility to delete all print jobs from a selected NDPS printer.