Link to home
Create AccountLog in
Avatar of wayneblue

asked on

Non-Administrator Users Cannot Print with Windows XP

As the Administrator on my home PC, I can print everything and anything, but none of my Limited account Users can print. They can see the printer and it shows that they are connecting to it, but nothing will print as long as they are logged in as a Limited User. Am I missing something somewhere?  Can how i give them printing priviledges, but keep the acct as limited?
Avatar of shariati
Flag of United Arab Emirates image

a printer connection is a per user setting. Each user has to make a
connection to the printer
Windows 2000, XP, 2003, Vista, and 2008 have the capability to have a Network Printer so that it is automatically available to any user that logs on at that computer.  Unfortunately, the Add Printer wizard does not expose that capability - it can only add a Network Printer for the currently logged on user.  So to add a printer globally (for all users) you have to a different tool.

The PrintUIEntry function of printui.dll has options for performing most printer management functions.  It can perform these functions either on the same computer that printui.dll is running on or on another computer (i.e remotely).  The general purpose rundll32 command can be used to execute PrintUIEntry function of printui.dll.

Some things to keep in mind:

   1. The function for adding a printer globally is /ga.  Globally in this context means that the action applies to all and any users that happen to logon at the target computer.
   2. The corresponding function for deleting a printer globally is /gd.  If you attempt to delete a global printer by using the Delete function in the printer's context menu, it will appear to delete, but will reappear when the Print Spooler service is restarted.
   3. Only printers previously added using the /ga function can be deleted using /gd.
   4. You have to have administrative rights and permissions on the target computer to use these functions.
   5. If a printer is added remotely using the /ga function, it will not appear to the user until the Print Spooler service is restarted or the user next logs on.  You can restart the print spooler remotely using these commands:
          sc \\targetcomputername stop spooler
          sc \\targetcomputername start spooler
      Like any other commands these commands can be used inside a command file, such as addglobalprinterremotely (see below).

Here's a way of "installing" network printers on workstations so that they are available to all users (remotely).

The file at AddGlobalPrinterRemotely.cmd has the commands for adding a network printer remotely and restarting the print spooler on the target computer.

If you prefer not to download .cmd files, paste (or key) the following into your own .cmd file (e.g. AddGlobalPrinterRemotely.cmd)

     rundll32 printui.dll,PrintUIEntry /ga /c\\%1 /n\\%2
     start /wait sc \\%1 stop spooler
     start /wait sc \\%1 start spooler

Then, at a command prompt key:

   addglobalprinterremotely targetcomputername printservername\printersharename

For example to install the printer \\pserver\p1 on the workstation abc:

   addglobalprinterremotely abc pserver\p1

To find out more about the rundll32 printui.dll,PrintUIEntry command, key (case sensitive):

    rundll32 printui.dll,PrintUIEntry /?

Here's some details:

/c specifies the computer which is to be the target of the requested action.

If /c is not specified, the local computer is assumed.  In other words, the /c option allows you to do printer management things on other computers without actually physically being there (i.e. remotely).

/n specifies which network printer is to be, in this case, added using the printer's UNC name (\\servername\printersharename).

/? is understood by PrintUIEntry to be a request for its Help information, which is displayed in a separate window.

The "start /wait" command runs the command (e.g. sc), then waits until the command actually terminates.  Stopping and starting the print spooler takes a while, so without this, the next command (e.g. sc ... start spooler) may run before the spooler is actually stopped.

Avatar of wayneblue


well thanks, i saw that before, and it was copied from another source.. can you pls make this more of an ELMENTARY WAY, for me to understand this? i sort of and i sort of don't understand the above..
Avatar of Bawer
put the limited users in a group and then add the group to printer security with required permissions, they will be able to use it....
in easy step:
1)on your server pc go to start>run>cmd
sc \\[your-computer-name] stop spooler
sc \\[your-computer-name] start spooler

example: sc \\homepc stop spooler

then on your local computer
3) Start>Run>CMD
4) type :
rundll32 printui.dll,PrintUIEntry /ga /c\\%1 /n\\%2
start /wait sc \\%1 stop spooler
start /wait sc \\%1 start spooler
5) now type
addglobalprinterremotely [your workstation name] [your server name]\[your Printer name]

example :
addglobalprinterremotely homegroup mypc\Hp1600
and if you want to do as Bawer said to add a group do : Start, and then click Control Panel. Click Performance and Maintenance, click Administrative Tools, and then double-click Computer Management.

2.In the console tree, click Groups.

Computer Management > System Tools > Local Users and Groups > Groups

3.Right-click the group in which you want to add a member, point to All Tasks, click Add to Group, and then click Add.

4.Click Look in to display a list of domains from which users and groups can be added to the group.

5.In Location, click the domain containing the users and computers you want to add, and then click OK.

6.In Name, type the name of the user or group you want to add to the group, and then click OK.
now add the group to printer permission

Open Printers folder
Click the printer you want to set permissions for.
Press and hold down CTRL, and then right-click the printer for which you
want to set permissions, click Properties, and then click the Security tab.
Click Add.
Click Look For, select the types of users you want to add, and then click OK.
Click Look In, browse for the location you want to search, and then click OK.
The location can be a workgroup or an individual computer...
Plz follows the following steps:-
1)Click onStart Button-Setting-And then select Printer & Fax option.

2)A new window will be display with all list of Printers

3) Select the particular printer and right click on that printer and select  properties option

4) Then clcik on the security tab from that windows and select the particular user from  where u want to take print out.
5) And check  the print check box option from mention below option.
shariati: your last comment seems to be something that i can understand.. i am very computer literate, but at times gets lost with all of the terminologies used, and how to correctly imply them..
ManoranjanSinha and shariati, pls contact me ASAP.........Something's just not happening..
* Find the SPOOL directory, typically within your %SYSTEM32% folder.
* Find the TEMP directory, typically within your %SYSTEM% folder.
* Right-click on each and select Properties, then the Security tab.
* Assign Full Control to "Everybody".

Microsoft Knowledgebase article 271901 may give additional help.
natcom: and the best way to find those folders is??
C:\WINDOWS\system32   C:\WINDOWS\temp and C:\WINDOWS\system32\spool      if you cant find then just do a search for then on your computer  click on start run then search.
ok, here's the deal...i was able to find the system 32 folder...when i did that and clicked on it, i found a "spool" folder when i did this, "Right-click on each and select Properties, then the Security tab. * Assign Full Control to "Everybody"., there's NO SECURITY TAB... what am i doing wrong here?
what version of windows are you using?
is it XP home edition?
shariati: i am using xp pro.. with sp3.
Avatar of natcom

Link to home
Create an account to see this answer
Signing up is free. No credit card required.
Create Account
ok natcom, i will surely try that and let you know..
thanks natcom
you are welcome I am glad I was able to assist you.