2.5.3.3 Locate and Establish a Connection to a Print Queue in a Domain Environment -- Print Client

Goal: To make a connection to a shared print queue in a domain environment so that documents can be printed by the user.

Context of Use: The user wants to print a document and does not have a printer attached to the local computer, but the user is member of a domain and knows that there are shared print queues in the enterprise that are available for use. The user decides to use one of the share print queues in the enterprise and initiates this use case.

Direct Actor: The direct actor is the print client.

Primary Actor: The primary actor is a user.

Supporting Actors: The supporting actors are the print server, the Active Directory system, and the Group Policy system in Extension (b).

Stakeholders and Interests:

  • Print client: The print client displays a list of shared print queues from which a user selects a print queue, and then the print client establishes a connection to the selected print queue.

  • Print server: The print server provides information about the shared print queue to the print client, makes the printer driver available to the print client for download if necessary, and enables the print client to connect to the print queue.

  • Active Directory system: The Active Directory system stores and provides a list of shared print queues that the user views in the print client user interface.

  • Group Policy system: The Group Policy Deployed Printer Connections Extension [MS-GPDPC] is a supporting actor in Extension (b). The Group Policy system is used to push a list of shared print queues to the print client so that the print client has pre-established connections to specified print queues. Additionally, Group Policy settings are inspected by the print client to restrict access to certain print servers.

  • User: The user wants to view a list of available shared print queues and selects a print queue to which to send a print job.

Preconditions: The print spooler services are operational on the print client and print server. Both are members of the domain and are connected through a network. The network is operational. The Active Directory system is available and operational.

Minimal Guarantee: The print queue is located but the user is informed via the print client user interface that a connection cannot be established due to insufficient permissions.

Success Guarantee: A connection to a shared print queue has been established by the print client, and the connection can be used to submit print jobs to the print server.

Main Success Scenario:

  1. Trigger: A user initiates this use case by clicking the Add a printer command in the print client's user interface.

  2. The print client queries the Active Directory system for a list of shared print queues in the domain.

  3. The Active Directory system replies with a list of shared print queues.

  4. The user of the print client selects a print queue from the query results.

  5. The print client opens a handle to the selected print queue by using the Print System Remote Protocol [MS-RPRN].

  6. The print client queries the print server for information about the print queue, such as which printer driver (and version) is being used, and the hardware ID of the printer represented by the print queue.

  7. If the print client already has a copy of the printer driver installed, the print client creates a local print queue proxy object. The proxy object represents the connection to the print queue on the print server. See Extension (a) for a description of the case where the print client does not already have a copy of the printer driver installed.

    Extension (a) – The print client downloads a printer driver:

    Step 6: If the print client does not have a copy of the printer driver installed, the print client obtains the printer driver from one of the following sources, identifying the printer driver using the hardware ID of the print queue obtained earlier:

    • From an administrative share on the print server

    • From Windows Update

    • From the user, for example, from a CD

    The print client then locally installs the printer driver.

    Extension (b) - Print client makes connections only to print queues specified by Group Policy [MS-GPDPC] deployed printer connections:

    Replace previous steps 1 through 3 with the following steps:

    1. An administrator defines one or more deployed printer connection Group Policy settings for one or more domain users or user groups. Each Group Policy setting includes details of one or more print queues that are shared by the print server.

    2. By using the Group Policy Deployed Printer Connections Extension, the print client retrieves the deployed printer connections for the logged-on user and the current computer and proceeds to automatically make connections to all print queues that are specified in the Group Policy settings, without user interaction in steps 4 through 6 for each print queue connection.

    Extension (c) – The print client registers for notifications of print queue status:

    Step 6 is followed by:

  8. When the print queue proxy representing the connection has been created, the print client opens a handle to the selected print queue by using the Print System Remote Protocol. The print client registers with the print server for some or all supported notifications on that handle, which then are sent to the print client when they become available. The print client reflects state changes of the server print queue in the local print queue proxy object. (such state changes can be, among others:error state, online/offline state, printer paused, list of queued jobs, associated printer driver - fetching and installing a different or updated printer driver if necessary, and so on.)

    Extension (d) – The print client creates a Branch Office Printing version of the print queue:

    Step 6 is followed by:

    Step 7. When the print queue proxy representing the connection has been created, the print client opens a handle to the selected print queue by using the Print System Remote Protocol. The print client then requests the Branch Office Print configuration data from the print server for the print queue. If the Branch Office Print Mode is enabled for this print queue, the print client configures the print queue proxy object to communicate directly with the device for print operations instead of with the print server.

    Variation (a) - Performing the use case by using the protocol as described in [MS-PAR]: All details are identical to the use case that is described in this section, except that the Print System Asynchronous Remote Protocol [MS-PAR] is used instead of the Print System Remote Protocol.