Global Network Printers

Posted on 2005-04-28
Last Modified: 2008-01-09

How do you install printers on a windows server 2003 that will be available to all logons?

I have installed a load of printers as administrator but we have an application that runs under a different account that has no printers?

do i just have to create a profile as the account that needs them and install them again??
Question by:yvsupport
    LVL 95

    Expert Comment

    by:Lee W, MVP
    Printers installed locally (as opposed to mapped to the network) are available to all users.
    LVL 9

    Expert Comment

    You should also share the printers.
    LVL 9

    Expert Comment

    Do you want local users or domain users to have access to these printers?  Printers should be abvailable to anyone who logs on locally if they are installed by someone with admin rights.  For domain users to be able to use these printers you will need to add them to thier local machines when they are logged on, the printers need to be shared in order to do this though.  If you are using Terminal Services then the printers will need to be added to each account.  I think there are way to script this but I am not sure how.
    LVL 6

    Expert Comment

    RShooper is correct, for printer to "be available" all you have to do is share them with the right permissions.

    You can control the assignment of printers using group policy though...Use this article if you want to control printers through Group Policy on your network.

    Note: The best way to apply group policy to a set of users is to create an organizational unit.

    LVL 6

    Expert Comment

    You need to share the printers (publish in AD) and then run a script to map the printers to the users.

    'Declares variables used through-out the script

    DIM fso

    Set WshShell = WScript.CreateObject("WScript.Shell")
    Set wshNetwork = CreateObject("WScript.Network")
    Set fso = CreateObject("Scripting.FileSystemObject")

    'Maps the pre-determined user directories

    wshNetwork.MapNetworkDrive "M:", "\\SERVER\SHARE" & ""

    'Maps Printers

    wshNetwork.AddWindowsPrinterConnection "\\SERVER2\PRINTERNAME1"
    wshNetwork.AddWindowsPrinterConnection "\\SERVER1\PRINTERNAME2"
    wshNetwork.SetDefaultPrinter "\\SERVER2\PRINTERNAME1"

    save that as a .vbs file under %SYSTEMROOT%\sysvol\SYSVOL\scripts\

    Author Comment

    thanks guys.

    Ok. The setup is:

    1 x Windows Server 2003 Std print server with all printers on site installed locally
    1 x Windows Server 2003 Web which runs the 'application' (browser based for the client) through IIS.

    All printers are shared and installed as network printers (connected to the print server) on the web server.

    The application runs under the 'ASPNET' account on the web server but has no printers.

    Are you saying that the printers need to be installed locally on the web server?? If so, this would go against our model as the spooling would surely take place on the web server and not on the dedicated print box??

    hmmm. Any ideas of how to get round this??
    LVL 6

    Accepted Solution

    Ah, i think i get what you're trying to do...what you want to do is called "server-side printing". The printer does need to be "locally" installed, but can be locally installed AS A NETWORK PRINTER, get it? Plus, you're .NET web application needs to fulfill certain "requirements". If you examine and follow this text, I bet your app will print:

    -the printers must be installed to the Web server
    -the local SYSTEM account is given access to the printers
    -the Machine.config file holding configuration settings for the .NET Framework is edited to give the ASPNET worker process access to the system settings on the server.
    *Note   Implementing server-side printing involves changing the default permissions on the server and is not recommended for applications that are exposed to the Internet.

    To setup server-side printing you need to ensure the process under which ASP.NET is running has sufficient permissions to access Network printers. By default, ASP.NET runs with the permissions of the local “machine” (ASPNET account for the ASPNET worker process) account. In order to achieve network printing through IIS (Internet Information Services), the Framework should be run under the local SYSTEM account.

    To setup server-side printing

    Access the Machine.config files which is located by default at:

    <VersionNumber> is the version of the .NET Framework installed to the computer. The account setting is contained within the <ProcessModel> tag of this file. The default setting for the account is: userName="machine" password="AutoGenerate"

    Edit the default configuration settings in the Machine.config file. Change the default setting to:
    userName="SYSTEM" password="AutoGenerate"
    Save the file.
    It is now possible to give the local SYSTEM account on the server permissions to print.

    If the printer is a network printer, expose the network printer to the local SYSTEM account.
    When a printer is installed to a computer, the settings for this printer are stored in the registry under the HKEY_CURRENT_USER registry hive (Registry file). The IIS process will never use this registry hive since it always runs under the context of the local SYSTEM account and cannot be logged onto a server as a “Current User”. By default, the SYSTEM account does not have any printers set up in the registry. There are two Microsoft knowledge base articles, Q152451 and Q184291 that explain how to expose the printer settings to the System account. Both of these articles require editing the registry on the Web server and copying the printer settings from the HKEY_CURRENT_USER hive to the HKEY_USERS/.DEFAULT hive.

    Hope that gets it! -neo

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    Looking for New Ways to Advertise?

    Engage with tech pros in our community with native advertising, as a Vendor Expert, and more.

    Even if you have implemented a Mobile Device Management solution company wide, it is a good idea to make sure you are taking into account all of the major risks to your electronic protected health information (ePHI).
    If you're not part of the solution, you're part of the problem.   Tips on how to secure IoT devices, even the dumbest ones, so they can't be used as part of a DDoS botnet.  Use PRTG Network Monitor as one of the building blocks, to detect unusual…
    This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor ( If you're looking for how to monitor bandwidth using netflow or packet s…
    In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor ( If you're interested in additional methods for monitoring bandwidt…

    760 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    11 Experts available now in Live!

    Get 1:1 Help Now