Skip to main content

Windows Services for Print Wizard

Introduction

A "service", as defined for Print Wizard, is Print Wizard waiting for a print job to appear, running in the background processing print requests. Print Wizard supports several types of services that can be ran by two different methods.

Types of services

Despool Despool print jobs from a local or network shared directory. This may also include despooling files by wildcard or exact file name.
FtpDespool Despool print jobs from a remote FTP directory (this normally will require a login and password and remote access to the FTP server. Also wildcard or exact file names maybe used.
Listen Listen on a specific network port for a remote application to send a print job (by default this is port 9100 and the protocol is similar to the HP Jetdirect protocol.
LPD Utilize the LPD / LPR protocol common to most Windows and Linux/UNIX systems to receive and manage print jobs.

Methods for running services

Print Wizard Service Print Wizard Services are controlled by the user and or in the user's Startup folder. In this case a user must be logged into the Windows machine for the service to run.
Windows Service for Print Wizard Whenever Windows starts up, so do Windows services. A standard Windows service runs regardless of if a user is logged in and runs under a specific, restricted user called "Local System".

Note: Due to some security changes in Windows and some changes in Print Wizard Service Edition, we recommend if you are going to run Windows Services that you update to at least version 3.2.30, available as of August 15, 2008.


Setting up a service

Through the User Interface program for Print Wizard, you can set up a Windows Service for Print Wizard or a Print Wizard Service (both utilize the same setup procedure). Under the Tools menu, select Setup services.

You first "add" a service and then you edit its properties to determine the settings and parameters to be used when the service runs.

Add a service

Add a service by name. The name cannot contain any special characters or spaces and must not duplicate any Windows service name already in use.

Edit Service Properties

Select the service type from the four mentioned above. Also, if you plan on running this as a Windows service, you can select the Windows startup type (to have your service start every time Windows does, set this to "automatic" and then use the Windows Service Wizard to install and start your service).

Set the Options and the Printing necessary for your specific service.

Only select a print profile if you are using print profiles to provide additional printer control for specific job types.

If you are planning on running this service as a Windows Service, be sure to select a printer. Selecting "Default" may cause problems as the default printer for the user "Local System" could be different than the default printer for the user you are currently logged in as. Also make sure that the particular printer you select is available to ALL users of this PC so that "Local System" can see this printer.

If you are setting up an FTP Despool service, you will also be required to enter information about the FTP server you will be connecting to.

If the user does NOT have full access privileges for the FTP server (privileges to delete a spooled print job), all is not lost. Select the "Index printed file" and the fact that a certain file has been printed will be tracked.

You should clear this index file as often as you clear the spooled print jobs out of the FTP despool directory.

 

Installing and running Windows Services from Print Wizard's User Interface

Print Wizard's user interface allows you to install and uninstall a Windows Service for Print Wizard, as well as start and stop these types of services.

 

Installing and running a Windows Service manually or from a script

Windows Services for Print Wizard are "started" by Windows, based on the ImagePath key inside the registry. This means a Windows service must be installed before it can be run. Likewise any parameters and service record information must be included in the same location.

When you install Windows Services for Print Wizard, it installs as the service name you specified. Windows Services must already have an established service record found in the “pwservices.ini” file (created through the Print Wizard User Interface). Also a startup type of "auto" is assumed. This means that it will automatically start the next time Windows restarts.

You can do the install manually by running the program from the Start: Run Windows dialog, from a Windows script, or from the Windows command (CMD) prompt:
            \pwservices.exe /install

where is the predefined Print Wizard service. Likewise, you can uninstall the Windows service by doing:
            \pwservices.exe /uninstall

Likewise, there is a way to start and stop the installed service either from the Windows Start : Run dialog, from a Windows script, or from the Windows command (CMD) prompt:

            sc /start
            sc /stop

You can also query to see if a service is running from the command-line:
            sc /query

or by running the PwServices program with a switch to query ALL Print Wizard services
            \pwservices.exe /query

Sometimes, especially in scripts, it is necessary suppress any displayed messages by running pwservices silently:
             \pwservices.exe /install /silent
             \pwservices.exe /uninstall /silent

Managing WIndows Services through Windows

Windows Services for Print Wizard can also be managed (started and stopped and certain Windows options changed) through the Windows Service Manager (see the Control Panel : Administrative Tools : Services dialog).

The Print Wizard "services" programs that are used

What to watch for

Windows Services for Print Wizard utilizes a service record you build through the user interface to Print Wizard. This information is stored within the "pwservices.ini" file and utilized by the "pwservices.exe" program when it starts up. This means that the "pwservices.ini" program must at least be readable by the user which the Windows Service runs as (usually "Local System"). Here are other things to watch for:

  • FTPDespool access thru firewall and timing

FTPDEspool service requires access to an FTP host on a network. This means that the service requires access through any personal firewall. It also means that if additional firewalls are in between, such as at the router or a corporate firewall that must be traversed, they also have to allow access.

There are also some firewalls and routers that will detect the constant access to the FTP port as hacker attempts and block that port. In these cases, you can slow down the polling of the FTP despool directory by slowing down the "Poll time interval" under the FTP Host properties for the service. You can also add your PC's IP address or the "pwservices.exe" application to your firewalls exception list.

It is also possible that theses conditions may hang the FTP service and it may not function any longer. You may have to restart the service occasionally to free it up. You can do this through the PWUI user interface or through the Windows Service Manager. If you cannot stop and restart the service, check your running processes within Windows Task Manager and kill off the "pwservices.exe" program.

  • Listen access thru firewall

Like FTPDespool, the Listen services for Print Wizard "listen" for a print job being sent over a network port. Routers and firewalls need to allow this access in order for the print job to get through.

There should not be as many problems here since the traffic is inbound. However, by default, this will ALWAYS be blocked by any personal firewall or Internet Security suite and you will have to enable that port or include the "pwservices.exe" program as an exception.

  • LPD access thru firewall

Like FTPDespool, the LPD services for Print Wizard receives print jobs over a network port. Routers and firewalls need to allow this access in order for the print job to get through.

There should not be as many problems here since the traffic is inbound. However, by default, this will ALWAYS be blocked by any personal firewall or Internet Security suite and you will have to enable that port or include the "pwservices.exe" program as an exception.

One thing to note with the LPD protocol however, is there may already be installed a "TCP/IP Print Service" on your Windows box that may conflict with Print Wizard's LPD protocol. You can disable this other protocol through the Windows Service Manager (change its state to start "manually").

  • Printers access for service user

By default a Windows Service runs as a specific, limited-access user, usually ":Local System". This user is established when Windows is first installed. If a printer is then installed by a specific user after that time, the services user may not have access.

If your printer setup program asks if you want to install this for all users or only one user, you want to answer "all" if you plan on accessing this printer from a Windows Service.

  • Despool and "mapped" drives

Despool services watch a specific directory for print jobs dropped into that directory. It will then attempt to print those files from that directory by first copying the file from that directory to the users temp directory (usually \Windows\Temp for user "Local System"). If you are despooling from a remote or network directory, be sure that the drive is always available. If you are trying to use a "mapped" drive, you need to be sure that drive is not mapped for the user, but is available all the time for all users (this can be difficult to set up, refer to Microsoft's web site for more information). Some rules of thumb:

Despool services should never point to a temporary directory

Despool services should not look for a mapped drive or directory (use the URI)

In a terminal services environment, be careful with despooling from a common directory name

Despool services needs to have delete permissions for a directory to prevent looping

  • Changes to a service and restarting the service

Any time changes are done through the user interface to service properties, that service should be restarted. You can do this through the Print Wizard user interface or through the Windows Service Manager.

  • Additional application calls that might hang

A Windows Service has no user interface available, it runs totally out of site of any user logged in. There are circumstances where a Windows call is made to a third party program that Print Wizard has no control over, and if that call results in some user intervention being needed, it can hang the Windows service.

An example of this is when you want to print or fax a generated PDF file. With automatic updates on in the later versions of Adobe Acrobat Reader, user intervention is sometimes needed when updates are available. If a print job tries to print a PDF file through Acrobat Reader and Acrobat Reader waits on a user response, this can hang the WIndows Service (since the user will never respond to something they can't see).

In these cases, all third-party applications that maybe used should be thoroughly tested outside of Windows Services and all auto-updates turned off before utilizing them under a Windows Service.

What to do when a service hangs

Windows Services for Print Wizard may hang for any number of reasons mentioned above. In these cases the simplest thing to do is to check on the status of the service through the Print Wizard user interface or through the Windows Services Manager.

From either of these, try restarting the service.

If you cannot restart the service, go to Windows Task Manager and try killing the program called "pwservices.exe" and any running "printwiz.exe". Also check to see if there are any third party application your print job would use that are also hung, such as Adobe Acrobat Reader. If this is successful, after doing this you would then need to manually restart the various Print Wizard services. Be careful when killing services through Task Manager and understand what you are doing!

If you cannot get the service to quit, your last resort is to restart your Windows machine and see if the problem disappears.

Running it as another user

Sometimes it is necessary to run your Windows Service as a different user, "Local System" may just not have access to your printer or your files or your mapped drive. You can change how a service runs and what user it runs as, under the Windows Service Manager.

However, be aware that this still may not run your necessary login script and set up the correct mapped drives. If these are an issue, you may need to run the Print Wizard service as a Print Wizard Service rather than a Windows Service for Print Wizard. Check the Print Wizard manual on setting up Print Wizard Services.

Copyright © 2020 Rasmussen Software, Inc. Legal Information & Privacy Policy
Send comments and suggestions to rsi@anzio.com