<<

PrinterOn PrintWhere

Administrator Guide

Version 6.1 Contents

Chapter 1: Deploying and configuring a PrintWhere environment ...... 3 The deployment process ...... 4 Additional configuration information ...... 4

Chapter 2: Preparing for deployment ...... 5 Deployment method: Intune vs ...... 5 Preparing to use Microsoft Intune: Installing the Intune client on users’ devices ...... 6 Preparing to use Group Policy: Group Policy deployment considerations ...... 7 prerequisites ...... 7 Availability of files to be deployed to users ...... 8 Adding your printer and printer driver ...... 9

Chapter 3: Deploying your printer driver ...... 11 Deploying your printer driver with Group Policy ...... 11 Creating a Group Policy Object for printers ...... 12 Configuring the printer deployment ...... 13 Associating the printer with your Group Policy Object ...... 16

Chapter 4: Deploying and installing PrintWhere ...... 17 Deploying and installing PrintWhere using Intune ...... 17 Before you begin: Determining your PrintWhere configuration strategy ...... 18 Publishing the PrintWhere installer to Intune ...... 19 Deploying PrintWhere to users’ devices ...... 25 Deploying an external PrintWhere configuration file ...... 26

1 Deploying and installing PrintWhere through Group Policy ...... 40 Creating the Group Policy Object for the PrintWhere software ...... 40 Configuring the PrintWhere deployment ...... 41 Deploying a PrintWhere configuration through Group Policy ...... 43

Appendix A: Configuring PrinterOn for use with PrintWhere ...... 45 Best practice: Configure two output destinations for a printer listing ...... 45 Determining the primary path routing ...... 46 Determining the secondary path routing ...... 47 Putting it together: Configuring a printer with two network paths ...... 47

Appendix B: Creating a PrintWhere configuration file ...... 50 Creating an XML configuration file ...... 50 Creating a PrintWhere key ...... 51 External configuration priority ...... 52 External configuration reference ...... 53

Appendix C: Sample ExternalConfig.cmd batch file ...... 61

Appendix D: Configuring PrintWhere for Citrix or shared terminal environments ...... 64 Using PrinterOn with Citrix ...... 64 Citrix configuration ...... 65 Installing PrintWhere in your environment ...... 65 Configuring the central computer to use PrintWhere ...... 66 Configuring the user’s computers ...... 66 Enabling plugin caching ...... 66 Suppressing Interactive Service Messages ...... 67

Administator Guide | 2 1

Deploying and configuring a PrintWhere environment

PrintWhere® is a universal Windows print driver that lets users print to any PrinterOn registered printer to which they have access directly from any Windows application, simply by selecting File > Print.

To simplify the print setup process for Windows users, administrators can deploy, install, and configure PrintWhere and any other necessary printers or drivers on users’ machines.

This guide outlines a series of tasks that use standard Windows Group Policy or Intune features to deploy a common print configuration to users within your organization. This deployment process is invisible to the user; once the deployment has been configured, the files and software are automatically installed when the user logs in and are ready for use with no user intervention at all.

When the user selects File > Print to print a document, they will automatically be printing through the PrinterOn service to the default printer you configured for them.

3 Deploying and configuring a PrintWhere environment

The deployment process

Successfully deploying a common print configuration to a group of users involves the following set of high-level tasks. Depending on your needs, some of these tasks my be optional. 1. Preparing for deployment: Outlines the prerequisites needed before deployment can be considered, and provides some additional information to help you decide how best to deploy a print configuration for your situation. 2. Deploying printers and printer drivers: Describes how to create a Group Policy Object specific printer drivers to users. This task is only required if the default printer drivers installed with the PrintWhere software don’t meet your needs. 3. Deploying the PrintWhere software: Describes how to create a Group Policy Object to deploy and install PrinterOn’s PrintWhere Universal printer driver and the PrintWhere configuration file.

Additional configuration information

In addition to the deployment tasks above, this guide includes additional information you can use to optimize the performance of PrintWhere and the PrinterOn service. • Best practices for configuring PrinterOn for use with PrintWhere: Describes some tips and tricks you can use when configuring your PrinterOn service’s printer listings. • Creating a PrintWhere configuration file: Describes how to create an XML-based external configuration file which you can deploy with the PrintWhere software. • Configuring PrintWhere for Citrix and shared terminal environments: Describes configuring PrintWhere in those unique use cases where multiple users are accessing printing services through a single server or terminal.

PrinterOn PrintWhere v6.1 Administator Guide | 4 2

Preparing for deployment

Before beginning the process of setting up the deployment of printers and PrintWhere, it’s helpful to ensure that your administration server is properly set up and any required files to be deployed are available on the administration computer. • Deployment method: Microsoft Intune vs Group Policy • Active Directory prerequisites • Availability of files to be deployed to users

Deployment method: Microsoft Intune vs Group Policy

Software can be deployed to Windows computers using one of two methods: • Microsoft Intune: Intune is Microsoft’s Mobile Device Management software. It can be used to manage computers as well as Windows-based mobile devices. The Microsoft Intune client is available natively on all devices running . For all other Windows devices, the Intune client must be installed. For information on installing the client, see Preparing to use Microsoft Intune: Installing the Intune client on users’ devices. • Windows Group Policy: Group Policy is Windows’ original remote management system designed for use in an Active Directory environment. It can be used for central management and configuration of user settings, applications, and OS for all computers connected to a corporate network.

5 Preparing for deployment

Preparing to use Microsoft Intune: Installing the Intune client on users’ devices

To allow administrators to remotely deploy and manage software, Microsoft Intune requires a client service be present on the end user’s device. The Intune client is available natively on all devices running Windows 10. However, for devices running an earlier version of Windows, the Intune PC client must be downloaded and installed.

To install the Intune client software on users’ devices: 1. Open and log into the Microsoft Intune administration console.

2. In the Intune console, click Admin > Client Software Download. The Client Software Download page appears.

3. Follow the instruction on the page to prepare for, download, and deploy the client software.

PrinterOn PrintWhere v6.1 Administator Guide | 6 Preparing for deployment

Preparing to use Group Policy: Group Policy deployment considerations

If you use Group Policy to deploy the printer and PrintWhere software, you can deploy with Group Policy in one of two ways: • deploying based on computer name • deploying based on user profiles

Typically, computer-based deployment is recommended. Computer-based deployment is faster and easier to manage; the software is deployed only once, and all users who log into the computer automatically user that print configuration.

User-based deployment is easier to set up, but is less efficient. User-based deployments are deployed each time a new user logs into a computer, even if the files and software were previously deployed to that machine when a different user logged in.

You’ll need to decide which of these strategies works best for your situation.

Active Directory prerequisites

User-based deployment relies on Active Directory accounts to distribute software to users. To successfully deploy PrintWhere and any printer drivers you might require, you first need to ensure that you have: • Set up and configured your Active Directory with the appropriate domains and users, etc. • Added all PCs to Active Directory, and assigned them to specific groups. • Created a group in Active Directory for Software, and assigned users and computers as members of this group.

This guide proceeds through the remaining deployment tasks under the assumption that the above tasks have been completed.

PrinterOn PrintWhere v6.1 Administator Guide | 7 Preparing for deployment

Availability of files to be deployed to users

The deployment tasks documented in this guide require you to have your administrator computer properly set up, with access to the files you are deploying. These tasks assume that the following files are already present and available locally on the Administrator’s computer: • Printer driver and Printer: PrintWhere installs a number of generic printer drive that perform very well with most printers on the market. However, if you prefer to use a specific printer driver designed specifically for a particular printer, you can. The printer driver must be installed on the administration computer, and the associated printer added as to the list of printer. • For information on adding the printer driver and printer to the administration computer, see Adding your printer and printer driver. • For information on deploying the printer driver and printer to users, see Deploying your printer driver.

Note: Intune does not support deploying printer drivers; you can only deploy .msi and .exe files. To deploy a printer driver, you must use Group Policy.

• PrintWhere_x64.msi: This is the for the PrintWhere software. You can download this file from PrinterOn.com/Downloads. • For information on deploying this file, see Deploying and installing PrintWhere. • ExternalConfig.xml: This is the PrintWhere configuration file, in which you can pre-define printer lists for users, preset search filters, set the service URL where PrintWhere searches for printers, and configure other settings. You’ll need to create this XML file manually and include it among your deployed files. • For information on creating this file, see Creating a PrintWhere configuration file. • For information on deploying this file, see Deploying and installing PrintWhere.

PrinterOn PrintWhere v6.1 Administator Guide | 8 Preparing for deployment

Adding your printer and printer driver

PrintWhere includes a number of universal printer drivers that work with virtually every printer. However, if your organization requires users to use a specific printer driver other than the PrintWhere defaults, you’ll need to add that driver and the associated printer to your server in order to distribute it to your users.

Note: If the printer and driver already exist on the administration server, you can skip this task.

To add a printer driver to the server: 1. In the Server Manager, from the Tools menu, select Print Management. 2. In Print Management navigation pane, expand Print Servers, then click the local Print Server > Drivers.

3. Right-click Drivers and select Add Driver. The Add Printer Driver wizard appears. 4. Follow the directions in the wizard to add your preferred printer driver. 5. In the left navigation pane, under the local Print Server, right-click Printers and select Add Printer. 6. Follow the directions in the wizard to add your preferred printer.

PrinterOn PrintWhere v6.1 Administator Guide | 9 Preparing for deployment

Next steps

Once you have prepared your server and determined which deployment tools and strategies you’ll use, you can continue on to the following tasks: 1. Deploy a printer driver to users. This step is optional, and is only required if your organization needs to use a specific printer driver rather that one of the generic printer drivers installed with PrintWhere. 2. Deploy PrintWhere and the PrintWhere configuration to users. With any specific printer drivers deployed as necessary, you can now prepare the deployment script for PrintWhere software itself.

PrinterOn PrintWhere v6.1 Administator Guide | 10 3

Deploying your printer driver

PrintWhere includes a number of universal printer drivers that work with virtually every printer. However, if your organization requires users to use a specific printer driver other than the PrintWhere defaults, you’ll need to distribute that driver and the associated printer definition to your users.

Note:

• Intune does not support deploying printer drivers; you can only deploy .msi and .exe files. To deploy a printer driver, you must use Group Policy.

• Before beginning these tasks, make sure that the printer driver and printer definition have already been added to the server.

Deploying your printer driver with Group Policy

To deploy a printer driver with Group Policy, complete the following tasks: • Create a Group Policy Object for printers. • Configure the printer deployment. • Associate your printer definition with the Group Policy Object.

11 Deploying your printer driver

Creating a Group Policy Object for printers

To ensure that the printer is deployed to the correct users, you’ll need to create one or more Group Policy Objects (GPOs) for printers.

This task demonstrates how to create a single GPO called Printers.

To create a group policy for printers: 1. In the Server Manager, click Group Policy Management. The Group Policy Management console appears. 2. Expand Forest > Domains, then right-click on the domain and select Create a GPO in this domain, and Link it here.

3. In the New GPO dialog, enter Printers as the name of the GPO, then click OK. The Printers GPO is added to the list of objects in the selected domain. 4. In the navigation pane, click the Printers GPO. The right pane displays configuration information for the GPO.

PrinterOn PrintWhere v6.1 Administator Guide | 12 Deploying your printer driver

5. In the Scope tab, in the Security Filtering section, add the Groups, Users, and Computers to which this Group Policy Object applies. 6. Right-click on the Printers GPO and check Enforced.

With the Group Policy Object created, you need to edit the GPO to define how the printer is deployed.

Configuring the printer deployment

Once the GPO is created, you need to define how the printer is installed on the users computer. How you define this information differs based on whether you decide to deploy to computers or to users.

To configure how the printer is deployed: 1. In the Navigation pane of the Group Policy Management window, right-click Printers and select Edit. The Group Policy Management Editor appears.

2. Complete the policy settings for your deployment type: • For computer-based deployments • For user-based deployments

Once the printer deployment information is configured, you can associate the printer with the Printers Group Policy Object.

PrinterOn PrintWhere v6.1 Administator Guide | 13 Deploying your printer driver

Configuring a computer-based deployment

If you are defining a computer-based deployment, you’ll need to configure policy settings specific to this deployment type.

To edit the computer-based group policy settings: 1. Right-click the Printer Group Policy Object and select Edit. The Group Policy Management Editor appears. 2. In the navigation pane, open Computer Configuration > Policies > Administrative Templates > Printers.

3. In the right pane, right-click Point and Print Restrictions. and select Edit. The Point and Print Restrictions settings appear.

PrinterOn PrintWhere v6.1 Administator Guide | 14 Deploying your printer driver

4. Select Enabled. 5. In the Options, specify the fully qualified name of the printer server. If you have multiple print servers, separate them with semi-colons. 6. In the Security Prompts section, for both settings, choose Do not show warning or elevation prompt. 7. Click OK.

Configuring a user-based deployment

If you are defining a user-based deployment, you’ll need to configure policy settings specific to this deployment type.

To edit the user-based Group Policy settings: 1. In the navigation pane, open User Configuration > Preferences > Control Panels. 2. In the right pane, right-click Printers then select New > Shared Printer. The New Shared Printer Properties dialog appears.

3. In the Action drop-down, select Update. 4. In the Share Path field, enter the printer location and share name that the user’s computer will use to connect to the printer. For example: \\PrintServer\SharedPrinter 5. Check Set this printer as the default printer. 6. Click OK.

PrinterOn PrintWhere v6.1 Administator Guide | 15 Deploying your printer driver

Associating the printer with your Group Policy Object

To deploy the printer driver, you deploy the printer, and the driver is deployed along with it.

To associate the printer with the Group Policy Object: 1. In the Server Manager, from the Tools menu, select Print Management. 2. In the Print Management navigation pane, click Printers. The right pane displays a list of printers associated with the local print server. 3. Right-click the printer you want to deploy and select Deploy with Group Policy.

4. In the Deploy with Group Policy dialog, click Browse... and select Printers Group Policy Object that you previously created. 5. Once the Group Policy Object is selected, choose how you want to deploy the printer connection: • The users that this GPO applies to (per user) • The computers that this GPO applies to (per machine) 6. Repeat Steps 3 and 4 to add additional Group Policy Objects to the deployment model, if necessary. 7. Click OK. 8. In the Print Management navigation pane, click Deployed Printers and verify that the printer driver was successfully added to the list.

Next steps

With any specific printer drivers deployed as necessary, you can now deploy PrintWhere and the PrintWhere configuration to users.

PrinterOn PrintWhere v6.1 Administator Guide | 16 4

Deploying and installing PrintWhere

Administrators can deploy a PrintWhere installer to user’s computer which will silently install the PrintWhere software when the user logs in. No user intervention is required.

Note: Before you begin, make sure you have:

• Downloaded the PrintWhere installer file(s) to a location that is accessible to the administration computer.

• Created your external PrintWhere configuration file (if you intend to deploy one) and saved it in the same folder as the installer(s).

You can deploy PrintWhere to your users using either Intune or Group Policy. • Deploying and installing PrintWhere using Intune • Deploying and installing PrintWhere through Group Policy

Deploying and installing PrintWhere using Intune

To deploy PrintWhere with Intune, complete the following tasks: 1. Before beginning the process, determine your PrintWhere configuration strategy. 2. Publish the PrintWhere installer to Intune. 3. Deploy the PrintWhere software. 4. If necessary, deploy an external configuration file.

17 Deploying and installing PrintWhere

Before you begin: Determining your PrintWhere configuration strategy

An important step in deploying PrintWhere to users is configuring the software so that it works with no user setup required and provides a consistent experience for all users. At minimum, PrintWhere must be configured to communicate with the PrinterOn service through the service URL. However, you can further streamline the user experience by defining printer lists, presetting search filters, pre-configuring authentication behavior, and so on.

PrinterOn provides two methods for deploying configuration information with Intune. Because one method requires you to provide information while publishing the PrintWhere installer to Intune, you’ll need to decide which method you’ll use (if any) before you start.

Configuration option Description

Simple configuration A simple configuration uses Intune command-line options to provide some basic configuration information (the Service URL and one or more default printers).

If you supply these options, when Intune deploys and installs the PrintWhere software, it also sets keys in the Windows Registry on the user’s computer. The first time the user runs PrintWhere, it checks the Windows Registry and uses the configuration information that is defined there.

Command-line options are added when you publish PrintWhere to Intune. For more information, see Step 10 of Publishing the PrintWhere installer to Intune.

Full configuration A full configuration involves creating an external configuration XML file for PrintWhere that defines any or all of the available configuration settings. You must also provide a batch file (included in Appendix C of this guide) that copies the configuration file to the correct location on the user’s computer.

You’ll need to then wrap these files as an executable, publish the executable to Intune, and finally, deploy the executable to the user.

Although this is a more complex process than the simple configuration, it provides you much more control over the configuration of the PrintWhere software.

For more information, see Deploying an external PrintWhere configuration file.

PrinterOn PrintWhere v6.1 Administator Guide | 18 Deploying and installing PrintWhere

Once you have decided which configuration method you’ll use, you can publish the PrintWhere installer to Microsoft Intune.

Publishing the PrintWhere installer to Intune

To publish the PrintWhere software to Microsoft Intune: 1. Open and log in to the Windows Azure administration console. 2. In the Services pane at the left of the window, click Intune. The Microsoft Intune portal appears.

3. In the Microsoft Intune portal, click Classic portal.

PrinterOn PrintWhere v6.1 Administator Guide | 19 Deploying and installing PrintWhere

4. In the Intune console, click Apps. The Apps page appears.

5. At the top of the Apps page, click Add Apps. The Microsoft Intune Software Publisher launches. The Software Publisher is a wizard that leads you through the process of publishing software. 6. Proceed to the Software Setup page, then define the setup settings as necessary.

Setting Description

How the software is Choose Software Installer. made available

Software installer Choose Windows Installer (*.exe, *.msi). type.

PrinterOn PrintWhere v6.1 Administator Guide | 20 Deploying and installing PrintWhere

Setting Description

Location of the The complete path to the PWhere_xnn.msi file. setup files

Include additional Disable this option. files and subfolders

7. Click Next, then, in the Software Description screen, modify the settings as necessary.

Setting Description

Publisher The name of the publisher of the app.

Name The name of the app as it appears in the company portal. The name should be unique; if you add both the 32-bit and the 64- bit PrintWhere software, you must differentiate them in some way.

Description A description of the app that appears in the company portal.

URL for Software Optional. A URL where information about the app can be found. information If included, this value is displayed in the company portal.

Privacy URL Optional. A URL where privacy information about the app can be found. If included, this value is displayed in the company portal.

Category Optional. A built-in grouping to which the app can be added to make it easier for users to locate the app in the company portal.

Icon Optional. An icon associated with the app in the company portal.

PrinterOn PrintWhere v6.1 Administator Guide | 21 Deploying and installing PrintWhere

8. Click Next, then, in the Software Requirements screen, define the Windows OS requirements for the software.

Setting Description

Architecture Allows you to choose which Windows Architecture the software is designed for. You can choose one or both of 32-bit or 64-bit.

PrintWhere has both a 32-bit and 64-bit installer.

Operating System Specifies which version(s) of Windows the software can be installed on.

PrintWhere only supports Windows 7 and later.

9. Click Next, then, in the Detection Rules screen, then specify the rules used to determine whether the PrintWhere software is already installed on the target device.

PrinterOn PrintWhere v6.1 Administator Guide | 22 Deploying and installing PrintWhere

10. Click Next, then, in the Command Line Arguments screen, specify any command- line arguments you want to include when Windows runs the installer.

The PrintWhere installer supports the following command line arguments:

Option Description

/q When included, the installer performs a silent installation of the PrintWhere software. The installer UI does not appear, and the user is not prompted for any input. Note: Intune adds this argument by default.

INSTALLDIR When included, specifies a custom installation folder where the installer will place the PrintWhere software, rather than using the default installation folder. For example: INSTALLDIR=”C:\\PrintWhere”

SERVICE_URL When included, sets the Service URL, which identifies where the PrinterOn Service is hosted. This option takes a string as a value. For example: SERVICE_URL="https://123.456.78.90:443/cps" Note: Only include this option if are using the simple configuration option.

PrinterOn PrintWhere v6.1 Administator Guide | 23 Deploying and installing PrintWhere

Option Description

DEFAULT_PRINTER When included, specifies a list of Default Printers. Multiple printers can be defined in a comma-separated list. For example: DEFAULT_PRINTER="printer1,printer2,..."

The first member of the list will be the default selected one when you use the PrinterChooser. Additional printers listed will be available from the Printer drop-down list in the PrintWhere Properties dialog.

Printers are displayed in the Printer Manager’s History list in the order they are listed. Note: Only include this option if are using the simple configuration option.

/l*v When included, the PrintWhere installer generates a log file that records the events that occurred during the installation process. For example: /l*v “C:\\PrintWhere\pwhere_log.txt”

11. Click Next, then, in the Return code screen, modify how the return codes are interpreted as necessary. For example, you can specify that the installation is successful only after the computer has been restarted.

12. Click Next to review a summary of the installation setup. 13. If the summary information is correct, click Upload to complete the publish of the PrintWhere installer. The PrintWhere installer is added to the Intune apps page.

PrinterOn PrintWhere v6.1 Administator Guide | 24 Deploying and installing PrintWhere

With the installer published to Intune, you can now deploy the PrintWhere software to users.

Deploying PrintWhere to users’ devices

Once the PrintWhere installer is published to Intune, you can deploy to user’s Windows devices and automatically install the software.

To deploy PrintWhere and install it on users’ devices. 1. In the Apps page of the Intune Portal, select the PrintWhere installer from the list of apps, then click Manage Deployment.

2. In the Deployment wizard, from the Available Groups list at the left, locate and select the group(s) you want to receive the PrintWhere software, then click Add. The groups are added to the Selected Groups list.

Note: You can use the Shift or Ctrl keys to select multiple groups.

3. When you have added all the necessary groups to the Selected Groups list, click Next to set the Deployment actions for each group.

PrinterOn PrintWhere v6.1 Administator Guide | 25 Deploying and installing PrintWhere

4. In the Deployment Actions screen, for each group, set the following settings:

Column Description

Approval To automatically install PrintWhere, set Approval as Required Install.

Deadline Specifies how soon to deploy an app designated as a Required Install. By default, As soon as possible is selected.

5. When you have configured the deployment action for each group, click Finish.

If you have used the simple configuration method to specify some basic configuration information for PrintWhere, the deployment process is completed.

If you intend to use an external configuration file for PrintWhere, you can proceed to deploy that PrintWhere configuration file to users.

Deploying an external PrintWhere configuration file

If you want to provide an external configuration file for PrintWhere to define communication and behavior settings, you can deploy this file using Intune. However, because of limitations with Intune (Intune only allows you to distribute .exe or .msi files to Windows clients), distributing a PrintWhere configuration file to users with Intune requires several additional files: • A batch file (ExternalConfig.cmd), used to copy the configuration file to the correct location on the user’s machine. PrinterOn has created this file for you. • If the configuration file already exists for a user account, • An executable file that wraps the configuration file and batch file (PrintWhereConfig.exe), which can be distributed by Intune. You’ll use the built-in Windows IExpress utility to wrap the files and create this executable file.

To deploy the configuration file to users with Intune, complete the following tasks: 1. Prepare the configuration and batch files for distribution. 2. Wrap the distributable files in an executable file. 3. Publish the configuration executable file to Intune. 4. Deploy the configuration executable to users.

PrinterOn PrintWhere v6.1 Administator Guide | 26 Deploying and installing PrintWhere

Preparing the configuration file and batch file

To distribute the PrintWhere configuration file: 1. Ensure that you have created the PrintWhere external configuration file and saved it with a file name of ExternalConfig.xml in an accessible location. 2. Locate the sample batch file in Appendix C of this guide. 3. Copy the contents of the batch file to a text file.

Note: Be sure to only copy the batch file text itself.

4. Name the file ExternalConfig.cmd. 5. Optionally, edit the batch file to control which user accounts the configuration file is copied to on the Windows device. By default, the batch file contains code that prevents it from copying the configuration file for various default and system Windows accounts. Typically, PrintWhere is not accessed from those accounts, so the configuration file is unnecessary. However, if you want to copy the configuration file to one or more of those accounts you can do so as follows: a) In the batch file, locate the following lines: if /i "!input!" equ "Administrator" goto continue if /i "!input!" equ "DefaultAccount" goto continue if /i "!input!" equ "defaultuser0" goto continue if /i "!input!" equ "Guest" goto continue if /i "!input!" equ "user" goto continue b) Remove or comment out the lines as necessary. 6. Save the file to the same accessible location as the ExternalConfig.xml file.

Note: To avoid problems running the batch file, ensure that you save the file in ANSI encoding.

Next, you can wrap these distributable files in an executable file.

Wrapping the files in an executable file

Because Intune can only distribute .msi or .exe files to Windows devices, you’ll need to take the files that you want to distribute, the ExternalConfig.xml and ExternalConfig.cmd files, and package them in an executable file.

PrinterOn PrintWhere v6.1 Administator Guide | 27 Deploying and installing PrintWhere

Windows includes a built in utility called IExpress that allows you to create this file, select the files to add, define how and where to extract them, and define any additional commands to run once they’ve been extracted.

To wrap the files in an executable file: 1. In Windows, search for the IExpress utility, then right click the file and select Run as administrator. The IExpress Wizard appears. 2. On the IExpress Wizard Welcome page, select Create a new Self Extraction Directive file, then click Next.

3. On the Package Purpose page, select Extract files and run an installation command, then click Next.

4. On the Package Title page, enter a name for the SED file that you’re creating, then click Next.

PrinterOn PrintWhere v6.1 Administator Guide | 28 Deploying and installing PrintWhere

5. On the Confirmation Prompt page, select No prompt, then click Next.

6. On the License Agreement page, select Do not display a license, then click Next.

7. On the Packaged Files page, click Add to locate and add the ExternalConfig.xml and ExternalConfig.cmd files to the package, then click Next.

PrinterOn PrintWhere v6.1 Administator Guide | 29 Deploying and installing PrintWhere

8. On the Install Program to launch page, specify the following command, then click Next: cmd.exe /c ExternalConfig.cmd This command opens the command prompt on the user’s device, then runs the batch file you created in the previous task.

9. On the Show Window page, select Hidden to have the batch file run in the background, then click Next.

PrinterOn PrintWhere v6.1 Administator Guide | 30 Deploying and installing PrintWhere

10. On the Finished Message page, select No message.

PrinterOn PrintWhere v6.1 Administator Guide | 31 Deploying and installing PrintWhere

11. On the Package Name and Options page: • Specify the name and location for the SED file you’re creating. • Select Hide File Extracting Progress Animation from User. • Select Store files using Long File Name inside Package. •Click Next.

12. On the Configure Restart page, select No restart, then click Next.

13. On the Save Self Extraction Directive page, choose whether or not you want to save the settings you’ve just specified as an SED file, then click Next.

PrinterOn PrintWhere v6.1 Administator Guide | 32 Deploying and installing PrintWhere

14. On the Create Package page, click Next. The utility locates the files and creates the executable file as specified. 15. Click Finish.

Next, you’ll need to publish the executable file to Intune.

Publishing the configuration executable file to Intune

To publish the executable to Microsoft Intune: 1. Open and log in to the Windows Intune administration console. 2. In the Intune console, click Apps. The Apps page appears.

PrinterOn PrintWhere v6.1 Administator Guide | 33 Deploying and installing PrintWhere

3. At the top of the Apps page, click Add Apps. The Microsoft Intune Software Publisher launches. The Software Publisher is a wizard that leads you through the process of publishing software. 4. Proceed to the Software Setup page, then define the setup settings as necessary.

Setting Description

How the software is Choose Software Installer. made available

Software installer Choose Windows Installer (*.exe, *.msi). type.

Location of the The complete path to the PWhere_xnn.msi file. setup files

Include additional Disable this option. files and subfolders

PrinterOn PrintWhere v6.1 Administator Guide | 34 Deploying and installing PrintWhere

5. Click Next, then, in the Software Description screen, modify the settings as necessary.

Setting Description

Publisher The name of the publisher of the app.

Name The name of the app as it appears in the company portal. The name should be unique; if you add both the 32-bit and the 64- bit PrintWhere software, you must differentiate them in some way.

Description A description of the app that appears in the company portal.

URL for Software Optional. A URL where information about the app can be found. information If included, this value is displayed in the company portal.

Privacy URL Optional. A URL where privacy information about the app can be found. If included, this value is displayed in the company portal.

Category Optional. A built-in grouping to which the app can be added to make it easier for users to locate the app in the company portal.

Icon Optional. An icon associated with the app in the company portal.

PrinterOn PrintWhere v6.1 Administator Guide | 35 Deploying and installing PrintWhere

6. Click Next, then, in the Software Requirements screen, define the Windows OS requirements for the software.

Setting Description

Architecture Allows you to choose which Windows Architecture the software is designed for. You can choose one or both of 32-bit or 64-bit.

PrintWhere supports both 32-bit and 64-bit.

Operating System Specifies which version(s) of Windows the software can be installed on.

PrintWhere only supports Windows 7 and later.

7. Click Next, then, in the Detection Rules screen, then specify the rules used to determine whether the PrintWhere software is already installed on the target device.

PrinterOn PrintWhere v6.1 Administator Guide | 36 Deploying and installing PrintWhere

8. Click Next, then, in the Command Line Arguments screen, specify the command used to run the batch file.

You can specify one of the following command:

Action Command

Deploy to all user /C:"cmd.exe /c pwcExternalConfig.cmd" accounts.

Deploy to a specific user /C:"cmd.exe /c pwcExternalConfig.cmd account. username" Note: If there is space in username, enclose it in an additional set of quotation marks. For example:

/C:"cmd.exe /c pwcExternalConfig.cmd "user name""

Uninstall the configuration /C:"cmd.exe /c pwcExternalConfig.cmd / file for all user accounts. uninstall"

Uninstall the configuration /C:"cmd.exe /c pwcExternalConfig.cmd file for a specific user username /uninstall" account.

9. Click Next, then, in the Return code screen, select No to indicate that return codes won’t be interpreted. 10. Click Next to review a summary of the installation setup.

PrinterOn PrintWhere v6.1 Administator Guide | 37 Deploying and installing PrintWhere

11. If the summary information is correct, click Upload to complete the publish of the configuration executable installer. The configuration executable is added to the Intune apps page.

With the configuration executable file published to Intune, you can now deploy the configuration executable.

Deploying the executable file

Once the configuration executable file is published, you can deploy the .exe file to user’s Windows devices. When the file is deployed, the contents are automatically extracted and the batch file runs.

To deploy the executable file: 1. In the Apps page of the Intune Portal, click Apps. The Apps page appears.

2. Select the configuration executable from the list of apps, then click Manage Deployment. The Deployment wizard. 3. In the Deployment wizard, from the Available Groups list at the left, locate and select the group(s) you want to get the PrintWhere Software, then click Add. The groups are added to the Selected Groups list.

PrinterOn PrintWhere v6.1 Administator Guide | 38 Deploying and installing PrintWhere

Note: You can use the Shift or Ctrl keys to select multiple groups.

4. When you have added all the necessary groups to the Selected Groups list, click Next to set the Deployment actions for each group. 5. In the Deployment Actions screen, for each group, sect the following settings:

Column Description

Approval To automatically install PrintWhere, set Approval as Required Install.

Deadline Specifies how soon to deploy an app designated as a Required Install. By default, As soon as possible is selected.

6. When you have configured the deployment action for each group, click Finish.

Note: After deploying the configuration file, the end user must reboot their machine for the configuration settings to take effect.

PrinterOn PrintWhere v6.1 Administator Guide | 39 Deploying and installing PrintWhere

Deploying and installing PrintWhere through Group Policy

To deploy PrintWhere with Group Policy, complete the following tasks: 1. Create a Group Policy Object for the PrintWhere software. 2. Configure the PrintWhere deployment. 3. Configure the PrintWhere configuration file deployment.

Creating the Group Policy Object for the PrintWhere software

To ensure that the PrintWhere software and configuration file are deployed correctly for your users, you’ll need to create a Group Policy Object (GPO) for each group of users that requires a unique PrintWhere configuration. This task demonstrates how to create a single GPO called Software.

To create a new Group Policy Object for PrintWhere: 1. In the Server Manager, click Group Policy Management. The Group Policy Management console appears. 2. Expand Forest > Domains, then right-click on the domain and select Create a GPO in this domain, and Link it here.

3. In the New GPO dialog, enter Software as the name of the GPO, then click OK. The Software GPO is added to the list of objects in the selected domain.

PrinterOn PrintWhere v6.1 Administator Guide | 40 Deploying and installing PrintWhere

4. In the navigation pane, click Software. The right pane displays configuration information for the GPO.

5. In the Scope tab, in the Security Filtering section, add the Groups, Users, and Computers to which this Group Policy Object applies. 6. Right-click on the Software GPO and check Enforced.

With the Group Policy Object created, you need to edit the GPO to configure how the PrintWhere software is deployed.

Configuring the PrintWhere deployment

Once the GPO is created, you need deploy the PrintWhere installer file, then instruct the user’s computer to install the file.

To configure how PrintWhere is deployed: 1. In the Group Policy Management window, right-click on the Software GPO and select Edit. The Group Policy Management Editor appears.

PrinterOn PrintWhere v6.1 Administator Guide | 41 Deploying and installing PrintWhere

2. In the Navigation pane, open Computer Configuration > Preferences > Windows Settings. 3. In the right pane, right-click Files, then select New > File. The dialog appears.

4. In the Action field, select Update. 5. In the Source file(s) field, specify the location where you saved the PrintWhere installer (PWhere_x64.msi). 6. In the Destination File field, specify where the installer will be placed. This location must be accessible to every user’s computer; for simplicity, it is recommended to simply install it in a folder on the user’s computer. 7. Check Read-only and Archive attributes, then click OK. 8. In the Navigation pane, open Computer Configuration > Software Settings. 9. Right-click Software Installation then select New > Package. 10. In the Open dialog, browse to the location the PrintWhere installer was placed in Step 6, then select the file and click Open. The Deploy Software dialog appears. 11. In the Deploy Software dialog, select Assigned as the deployment method. This deployment method instructs the user’s computer to execute the installer and install the PrintWhere software.

12. Click OK.

With the PrintWhere installer deployed and configured to be installed, you can now deploy the PrintWhere configuration file, if you choose to.

PrinterOn PrintWhere v6.1 Administator Guide | 42 Deploying and installing PrintWhere

Deploying a PrintWhere configuration through Group Policy

The PrintWhere configuration file (ExternalConfig.xml) is an XML file that allows you to pre-define printer lists for users, preset search filters, set the service URL where PrintWhere searches for printers, and configure other PrintWhere settings.

Before beginning this task, ensure that you have a valid file already created and available from an accessible location.

Note: You need to create this file manually. For information on creating this file, see Creating a PrintWhere configuration file.

To deploy the PrintWhere configuration file: 1. In the Group Policy Management window, right-click on the Software GPO and select Edit. The Group Policy Management Editor appears.

2. In the Navigation pane, open Computer Configuration > Preferences > Windows Settings.

PrinterOn PrintWhere v6.1 Administator Guide | 43 Deploying and installing PrintWhere

3. In the right pane, right-click Files, then select New > File. The dialog appears.

4. In the Action field, select Update. 5. In the Source file(s) field, specify the location where you saved the PrintWhere configuration file (ExternalConfig.xml). 6. In the Destination File field, specify where the configuration will be placed. This file must be placed in the following location on every user’s machine: C:\Users\\AppData\Local\PrinterOn Corporation\Printwhere \Config\ExternalConfig.xml 7. Check Read-only and Archive attributes, then click OK.

Note: After deploying the configuration file, the end user must reboot their machine for the configuration settings to take effect.

PrinterOn PrintWhere v6.1 Administator Guide | 44 A

Configuring PrinterOn for use with PrintWhere

Deploying PrintWhere to your users with Intune or Group Policy ensures that every user is set up with the printing environment that you want them to have. However, to take full advantage of all the benefits that PrintWhere offers, there are a few best practices you should follow when configuring your PrinterOn Server.

Best practice: Configure two output destinations for a printer listing

When you create a new PrinterOn printer listing, one of the settings your required to define is the output destination, that is, the network path to the physical printer that the listing represents. Typically, a printer listing is configured with a single output destination.

However, one of the key benefits of using PrintWhere in your Windows environment is its ability to connect to a printer using two possible network paths. The Smart Print Path feature of PrintWhere automatically picks the best print path (the shortest, fastest, least costly) and compresses files for up to 75% bandwidth savings and faster print.

Smart Print Path feature is extremely useful for modern mobile workforces, where users may at times be connected to the internal, firewall-protected network, or to some external network.

45 Because users are mobile, they may at times be connected to either the internal network behind the firewall, or to some external network. Smart Print Path allows you to set up a primary path to the printer (used when the user is connected to the local network) and a secondary path (used when the user is trying to access the printer remotely).

The user does not need to change their printer, nor modify any settings; if PrintWhere is unable to connect using the primary path, it automatically attempts to connect using the secondary path.

When configured properly, having two paths to the printer can not only optimize network usage, but can also improve the performance of your PrinterOn service. To maximize the potential benefits, you must define your primary and secondary paths appropriately.

Determining the primary path routing

The primary path is used when the user is connected to the local network. For optimal performance, you should configure the primary path as a direct connection using either the IPP or TCP protocol. A direct connection routes print data directly from the user’s computer to the printer, without sending it through the PrinterOn infrastructure.

Print data can be large (the PrinterOn service supports jobs of up to 50MB). A direct connection reduces the number of times this data is transferred, improving performance considerably.

Note: Although the print data bypasses the PrinterOn Server, the server still collects other job accounting data for each print job.

Choosing IPP or TCP

The PrinterOn service supports two protocols, TCP and IPP, that can be used to communicate directly with the printer. Which protocol you should use depends largely on the printer. • TCP protocol: TCP is one of the earliest Internet communication protocols. Every printer supports TCP. However, its wide support among printers is TCP’s primary advantage; it does not support compression or encryption of data, and does not return print job status information. Use the TCP protocol only if you have an older legacy printer, or if you can’t determine whether your printer supports IPP. To define a direct network path to the printer using TCP, use the following syntax:

PrinterOn PrintWhere v6.1 Administator Guide | 46 tcp://[:] For example: tcp://172.16.1.1:9100

Note: Specifying the port is recommended for optimal efficiency. If no port is specified, PrintWhere queries up to three ports (443, 80, and 631) to determine whether they are open and available for use, which requires an additional conversation between PrintWhere and the server.

• IPP Protocol: IPP is built upon TCP and extends it specifically for communicating with printers; IPP includes built-in support for encryption, compression, and job status information. As a result, IPP is • Use IPP if your printer is AirPrint compatible. AirPrint, Apple’s Printing protocol, uses IPP. To define the path using IPP, use the following syntax: ipp:/// For example: ipp://172.16.1.1/ipp/port1

Determining the secondary path routing

The secondary path is used when the user is attempting to print from outside the firewall. In this instance, the print data is routed through the PrinterOn Server, which provides a communication link through the firewall. The server then directs the data to the printer.

The secondary path should be configured using HTTP, HTTPS or some other protocol.

Putting it together: Configuring a printer with two network paths

The output destination is a key part of the PrinterOn printer listing configuration, linking the printer listing with the physical printer. You can set the output destination paths using the PrinterOn Configuration Manager.

PrinterOn PrintWhere v6.1 Administator Guide | 47 To configure a printer listing with two output destinations: 1. In the Configuration Manager, click Printers. The Printers tab appears, displaying a list of currently available printers.

2. In the PrinterOn Printers list, click next to a printer that you want to configure. The printer actions appear.

3. Click Configure. The Printer Configuration dialog appears.

PrinterOn PrintWhere v6.1 Administator Guide | 48 4. In the Printer Configuration dialog, expand the Output Location section

5. Set your Primary path to the printer in the Output Destination field. This should be a direct connection to the printer, and should use either the IPP or TCP protocol.

Note: If you’re using TCP, specifying the port is recommended for optimal performance.

6. Uncheck Allow Printing Directly to PDS. 7. Uncheck Print Directly to PDS Only. 8. Check Use An Alternate/Local Print Delivery Hub to Host Print Jobs. An additional field, Server Address appears. 9. Set your Secondary path to the printer in the Server Address field. 10. When you have finished modifying the printer configuration, click Apply Settings.

PrinterOn PrintWhere v6.1 Administator Guide | 49 B

Creating a PrintWhere configuration file

With external configuration, administrators can pre-define printer lists for users, preset search filters, set the service URL where PrintWhere searches for printers, and configure other settings. The first time PrintWhere is started, the options from the external configuration are loaded, so users can print with no setup at all.

External configuration of PrintWhere also allows administrators to centrally manage PrintWhere behavior and provide a consistent experience for all users.

When PrintWhere is configured for them, users can still access the PrintWhere Printer Manager and Printer Properties dialogs. If users change the PrintWhere configuration, PrintWhere checks to see if an XML configuration file exists, and if so, saves any changes made by the user to the external configuration.

Administrators can also lock the PrintWhere configuration, so that users cannot change it at all.

Creating an XML configuration file

You can create an XML configuration file for PrintWhere that you can distribute to users.

The XML file must be named ExternalConfig.xml, and it must be deployed to the following location on the user’s computer:

50 C:\Users\\AppData\Local\PrinterOn Corporation\Printwhere \Config\ExternalConfig.xml

External XML Example

The following sample XML shows the structure of the XML configuration file. For details about each of the settings, see External configuration settings reference.

0 0 0 120 secure1.printeron.net 1 1 All www.printeron.com

Creating a PrintWhere Windows Registry key

Registry configuration can be managed for individual users using their standard Windows user profile locations.

The PrintWhere Registry configuration information should be put into the users Current User registry hive, at the following location: HKEY_CURRENT_USER\Software\PrinterOn Corporation\PrintWhere \ExternalConfig

PrinterOn PrintWhere v6.1 Administator Guide | 51 Sample Registry

The following sample the structure of the PrintWhere configuration in the Windows registry. For details about each of the settings, see External configuration settings reference.

External configuration priority

PrintWhere external configuration can be used alongside the configuration options. However, only one external configuration method can be used at a time. You cannot use an XML configuration and Registry configuration at the same time.

Each time PrintWhere is launched, it checks to see if an external configuration exists, and if found, loads the specified configuration settings. PrintWhere first checks to see if ExternalConfig.xml exists. If the file is not found, it then checks for a PrintWhere entry in the Windows registry.

PrinterOn PrintWhere v6.1 Administator Guide | 52 Upgrading an external configuration

PrintWhere supports external configuration upgrade. Older versions of PrintWhere will also be migrated from previous configuration locations in the registry to the new XML file format to support a forward migration to the new method.

If no external configuration exists, PrintWhere uses default values.

External configuration settings reference

The following sections outline the external configuration settings and permitted values. • AskForCredentialsAlways • AuthenticationMode • DefaultPrinter • LockPrinterConfig • OAuthBrowserTimeout • PrimarySite • PrinterChooser • RemovePrinter • Search settings • ServiceURL • Third-party integration settings

AskForCredentialsAlways

Description Specifies whether the user must provide their credentials each time they close or minimize the Printer chooser. XML Syntax value

PrinterOn PrintWhere v6.1 Administator Guide | 53 Description Specifies whether the user must provide their credentials each time they close or minimize the Printer chooser. Registry Entry AskForCredentialsAlways value Values value can be one of: 0: PrinterOn asks for credentials once, and then saves them. PrinterOn does not ask for credentials again. 1: When the user logs off, PrintWhere clears credentials. The next time they print or access Printer Manager, PrintWhere prompts the user for their credentials. This value only applies with AuthenticationMode is set to a value of 2 or 3.

AuthenticationMode

Description Specifies the authentication mode used. XML Syntax value Registry Entry AuthenticationMode value Values value can be one of: 0: PrintWhere does not prompt the user for their credentials, but passes on the credentials specified PrintWhere’s Account Settings dialog, when required. If the user does not provide their credentials in the Account Settings dialog, but the PrinterOn server is configured to use either LDAP/AD or Azure AD for authentication, the user will not be authenticated and all print requests are rejected. 1: Windows authentication is used (either the local user account, or the administrator credentials, if logged in as administrator). 2: The LDAP/AD or Azure AD account credentials are used. 3: Only the PrinterOn account username is used.

PrinterOn PrintWhere v6.1 Administator Guide | 54 DefaultPrinter

Description Specifies a list of Default Printers. The first member of the list will be the default selected one when you use the PrinterChooser. Additional printers listed will be available from the Printer drop-down list in the PrintWhere Properties dialog.

Printers are displayed in the Printer Manager’s History list in the order they are listed. XML Syntax printer1 printer2 Registry Entry DefaultPrinter printer1,printer2,...

Note: Multiple printers can be defined in a comma-separated list. Values printer represents the PrinterOn printer name or printer number.

LockPrinterConfig

Description Specifies whether the printer configuration can be modified by users. XML Syntax value Registry Entry LockPrinterConfig value Values value can be one of: 0: The user can modify the printer configuration. 1: The Printer configuration is locked and cannot be modified.

PrinterOn PrintWhere v6.1 Administator Guide | 55 OAuthBrowserTimeout

Description Specifies the length of time PrintWhere waits for the user to authenticate against an external third-party authentication service, such as Microsoft Azure AD.

These services require PrintWhere to redirect the user to a URL hosted by the service to enter their credentials, during which time PrintWhere remains blocked. Because PrintWhere has no control over the browser session, the timeout value allows you to provide a finite amount of time before PrintWhere assumes the user did not successfully authenticate.

If PrintWhere does not receive a response that the user is successfully authenticated before the timeout, the user is informed that PrintWhere could not validate the account, and PrintWhere becomes unblocked.

The default timeout is two minutes. XML Syntax integer Registry Entries OAuthBrowserTimeout value Values integer is the length of time, in seconds before PrintWhere aborts the authentication process.

PrimarySite

Description Specifies the site where the PrinterOn license is accessed. This site is also used for PrintWhere downloads. This is not the same as the Service URL. XML Syntax string Registry Entry PrimarySite string Values string is the URL of the primary site.

PrinterOn PrintWhere v6.1 Administator Guide | 56 PrinterChooser

Description Specify printer chooser settings. You can specify: • whether PrintWhere Printer Manager icon is minimized to the system tray when closed. • whether the user can edit the settings in the printer chooser. XML Syntax Registry Entries PrinterChooser_SysTrayAndStartup sys_value PrinterChooser_UserEdit edit_value Values sys_value can be one of: 0: The Printer Manager is not minimized to the System Tray. 1: The Printer Manager is minimized to the System Tray.

edit_value can be one of: 0: The user cannot edit the settings. 1: The user can edit the settings.

RemovePrinter

Description Clears the list of previously selected printers whenever a new Service URL is pushed to the user.

This setting does not affect behavior when the user changes the Service URL manually in Printer Manager. XML Syntax value Registry Entry RemovePrinter value Values value can be one of: 0: The printer list is not modified. Printers are not removed. 1: The user can modify the client UID and session values.

PrinterOn PrintWhere v6.1 Administator Guide | 57 Search settings

Description Specify whether the user is permitted to search for printers, and defines address, category, and organization search filters. If searching is permitted and filters are defined, PrintWhere only returns printers that are located at the specified address, match the specified category, or belong to the specified organization.

You can also specify whether the user is permitted to edit the Search Address or Search Organization value. XML Syntax addr_string cat_string org_string Registry Entries SearchAddress addr_string SearchAddress_UserEdit value SearchCategory cat_string SearchOrgName org_string SearchOrgName_UserEdit value Values addr_string represents any part of an address (state, city, street, zip) defined for a printer.

cat_string is one of the following categories: •All • Public • Organization

org_string represents a company name defined for a printer.

value can be one of: 0: The user cannot edit the filter value. 1: The user can edit the filter value.

PrinterOn PrintWhere v6.1 Administator Guide | 58 ServiceURL

Description Specifies the Service URL, which identifies where the PrinterOn Service is hosted. This URL hosts the printer list that PrintWhere searches.

If you specify a Service URL value that points to a service that requires credentials, you should modify AuthenticationMode to cause PrintWhere to prompt for credentials. XML Syntax string Registry Entry ServiceURL string Values string represents the Service URL for your PrinterOn solution.

Third-party integration settings

Description The ClientUID, SessionMetaData, and EnableSessionClientUID specify information used by some third-party integrations.

You can also specify whether the user is permitted to edit the client UID and session metadata content. XML Syntax string string value

PrinterOn PrintWhere v6.1 Administator Guide | 59 Description The ClientUID, SessionMetaData, and EnableSessionClientUID specify information used by some third-party integrations.

You can also specify whether the user is permitted to edit the client UID and session metadata content. Registry Entries ClientUID string SessionMetaData string EnableSessionClientUID value Values string represent user information required by your third-party integration.

value can be one of: 0: The user cannot modify the client UID and session values. 1: The user can modify the client UID and session values.

PrinterOn PrintWhere v6.1 Administator Guide | 60 C

Sample ExternalConfig.cmd batch file

The following file is a sample batch file that you can use to when deploying the PrintWhere configuration file using Microsoft Intune. To ensure that you do not run into problems, you should copy each page individually; otherwise, you may introduce artifacts from the PDF file.

@echo off setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

:: script global variables set me=%~n0 set log=%TEMP%\%me%.txt set KEY_NAME="HKEY_LOCAL_MACHINE\Software\PrinterOn Corporation" set CONFIG_FILE="ExternalConfig.xml" set PATH=%systemroot%\system32\;%systemroot%\system32\wbem\;%PATH%;

:: delete old log file if exist "%log%" del /Q %log% >NUL

:: do something cool, then log it call :tee "%me%: ======COPY PWC CONFIG FILE BEGIN======"

:: search PrintWhere version set pwcVersion="" for /f "tokens=*" %%a in ('REG QUERY %KEY_NAME% /f "*PrintWhere*"') do ( set aReg=%%a for /f "tokens=4 delims=\" %%a in ("!aReg!") do ( set pwcVersion=%%a call :tee "%me%: "!pwcVersion!" is found." ) )

if /i !pwcVersion! EQU "" ( goto error_no_PrintWhere )

set user=%1 set p2=%2

call :tee "%me%: p1 is "!user!"" call :tee "%me%: p2 is "!p2!""

if /i "!user!" equ "/uninstall" ( goto uninstall_all )

61 if /i "!user!" neq "" ( if /i "!p2!" equ "/uninstall" ( goto uninstall_user ) else ( goto deploy_user ) ) call :tee "%me%: Copy config file to all users." for /f "tokens=* skip=1" %%a in ('wmic UserAccount where "disabled=false and localaccount=true" get Name') do ( set input=%%a call :TRIM input if /i "!input!" NEQ "" ( REM if you do not want to deploy config to specific user, add it here if /i "!input!" equ "Administrator" goto continue if /i "!input!" equ "DefaultAccount" goto continue if /i "!input!" equ "defaultuser0" goto continue if /i "!input!" equ "Guest" goto continue if /i "!input!" equ "user" goto continue

set "apath=!systemdrive!\users\!input!\AppData\Local\PrinterOn Corporation\!pwcVersion!\Config\" call :tee "%me%: Found user "!input!"" set aLocal=!systemdrive!\users\!input!\AppData\Local\ call :tee "%me%: Checking Directory "!aLocal!"" if exist "!aLocal!" ( xcopy %CONFIG_FILE% "!aPath!%CONFIG_FILE%*" /Y > null 2>%TEMP%\pwcTemp.txt set /p result=<%TEMP%\pwcTemp.txt del /Q %TEMP%\pwcTemp.txt >NUL call :tee "%me%: Copy %CONFIG_FILE% to !aPath!%CONFIG_FILE%." call :tee "%me%: Standard Error: "!result!"." ) else ( call :tee "%me%: Directory "!aLocal!" does not exist. Please make sure you can login "!input!"." ) :continue call :tee "%me%: continue..." ) ) goto end

:uninstall_user call :tee "%me%: Uninstall config for user "!user!"." :uninstall_all call :tee "%me%: Uninstall config for all users." for /f "tokens=* skip=1" %%a in ('wmic UserAccount where "disabled=false and localaccount=true" get Name') do ( set input=%%a call :TRIM input if /i "!input!" NEQ "" ( REM if you do not want to deploy config to specific user, add it here if /i "!input!" equ "Administrator" goto continue2 if /i "!input!" equ "DefaultAccount" goto continue2 if /i "!input!" equ "defaultuser0" goto continue2 if /i "!input!" equ "Guest" goto continue2 if /i "!input!" equ "user" goto continue2

set "apath=!systemdrive!\users\!input!\AppData\Local\PrinterOn Corporation\!pwcVersion!\Config\" call :tee "%me%: Found user "!input!"" if exist "!aPath!%CONFIG_FILE%" del /Q "!aPath!%CONFIG_FILE%" >NUL :continue2 call :tee "%me%: continue..." ) ) goto end

:deploy_user

REM remove quotes set user=%user:"=% call :tee "%me%: Copy config file to user "!user!"." set "apath=!systemdrive!\users\!user!\AppData\Local\PrinterOn Corporation\!pwcVersion!\Config\" set aLocal=!systemdrive!\users\!user!\AppData\Local\ call :tee "%me%: Checking Directory "!aLocal!"" if exist "!aLocal!" ( xcopy %CONFIG_FILE% "!aPath!%CONFIG_FILE%*" /Y > null 2>%TEMP%\pwcTemp.txt set /p result=<%TEMP%\pwcTemp.txt del /Q %TEMP%\pwcTemp.txt >NUL call :tee "%me%: Copy %CONFIG_FILE% to !aPath!%CONFIG_FILE%." call :tee "%me%: Standard Error: "!result!"." ) else ( call :tee "%me%: Directory "!aLocal!" does not exist. Please make sure you can login "!user!"." ) goto end

:error_no_PrintWhere call :tee "%me%: Cannot determine the PrintWhere version. goto end

:end call :tee "%me%: ======COPY PWC CONFIG FILE END======"

PrinterOn PrintWhere v6.1 Administator Guide | 62 :: force execution to quit at the end of the "main" logic exit /B %ERRORLEVEL%

:: a function to write to a log file and write to stdout :tee ECHO %* >> "%log%" REM ECHO %* EXIT /B 0

:TRIM setlocal enabledelayedexpansion call :TRIMSUB %%%1%% EndLocal & set %1=%tempvar% GOTO :EOF

:TRIMSUB set tempvar=%* GOTO :EOF

:usage echo Error in script usage. The correct usage is: echo %0 echo or echo %0 username

PrinterOn PrintWhere v6.1 Administator Guide | 63 D

Configuring PrintWhere for Citrix or shared terminal environments

Administrators can deploy PrinterOn in environments where multiple users are accessing printing services through a single server or terminal. For example: • Citrix environments: In these environments, a central Citrix server is used to provide employees with remote access to network printers no matter where they may be: at the office; at home; or at a public printing location, such as an airport or library • Shared terminal environments: In these environments (for example, a public printing kiosk), a single computer is used to access printing services, but each user logs in under their own account.

In each of these cases, installing and configuring the PrintWhere software to access the printing infrastructure is essentially the same.

Using PrinterOn with Citrix

PrinterOn can be used with Citrix in a couple of scenarios: • In mobile environments, where the Citrix Receiver mobile app is used to access a server-based desktop environment, PrinterOn’s network infrastructure can be used to deliver the print data across disparate networks. PrinterOn’s PrintWhere driver is used to deliver print data from the Citrix server to the remote print location.

64 • On Windows desktop computers, PrintWhere provides native File > Print capability from any application. Typically, Citrix users are only able to print to the printers directly connected to the Citrix server. Through PrintWhere, users are able to search for and print to all enabled enterprise printers without being connected to the network or having particular print drivers installed. This gives employees remote access to enterprise printers no matter where they may be.

To enable printing from Citrix, administrators must enable employees to access PrintWhere from their Citrix sessions. This appendix describes how to provide users with the access they need.

Citrix server configuration

The PrinterOn PrintWhere driver requires the following software: • Citrix XenApp 6.5 or later • Windows 2008 r2 x64 or later • Windows 2012 r2 x64 or later

The server is part of a workgroup. PrinterOn services must be installed on a single server. PrintWhere is installed for multiple users on the farm node.

In addition, to allow users to access the PrintWhere documentation, you should ensure that the Microsoft XPS Viewer is installed on your server.

Installing PrintWhere in your environment

To install PrintWhere: 1. Download the PrintWhere installer from the PrinterOn website at www.printeron.com/support/downloads.html. 2. On the farm node, click on Start > All Programs > Accessories. 3. In the Accessories folder, right-click on Command Prompt, and select Run as administrator. 4. In the Administrator: Command Prompt window, type: change user /install. 5. From the command prompt, type PWhere.exe to launch the PrintWhere installer. 6. Follow the installation instructions.

PrinterOn PrintWhere v6.1 Administator Guide | 65 Configuring the central computer to use PrintWhere

To avoid issues and ensure that users can print, administrators should pre-install necessary printer drivers on the computer. An administrator should install, configure, and print to each device prior enabling users. After the administrator has printed once, subsequent users can use the service without additional rights.

Configuring the user’s computers

To ensure that users avoid issues using PrintWhere, administrators must modify the Windows Registry on the shared terminal accessed by users, or in a Citrix environment, on each user’s computer locally, to complete the following tasks: • Enable plugin caching • Suppress Interactive Service Messages

Enabling plugin caching

With PrintWhere, when a user changes a destination printer, PrintWhere adds a helper printer object to the computer, referred to as a PrintWhere plugin. This plugin provides the computer access to the required printer driver. By default, to minimize its presence on the computer, PrintWhere uses only one plugin at a time. Whenever a user selects a different printer, PrintWhere removes the existing plugin and adds a new one.

To make these changes to the system, PrintWhere requires the user to have permission to change printers and set the drivers. If the user does not have permission to install drivers, then errors occur which can prevent the user from printing.

Plugin caching allows PrintWhere to maintain multiple plugins so that they don’t need to be removed and added every time the user selects a different printer. This approach allows users who cannot add new printers to work around their limited permissions. Users can move between the printers previously configured by the Administrator, since, from the system’s perspective, PrintWhere remains the selected destination printer.

Note: A user with administrator privileges MUST install the necessary drivers prior to providing the service to users with less privileges. For more information, see Configuring the central computer to use PrintWhere.

PrinterOn PrintWhere v6.1 Administator Guide | 66 To enable plugin caching: 1. Open the Windows Registry Editor and navigate to the following Registry location: HKEY_LOCAL_MACHINE\Software\PrinterOn Corporation\PrintWhere 2. In the right pane of the registry window, right-click and select New > DWORD value. The new value is added to the registry, with the name editable. 3. Change the value name to PluginCacheEnabled. 4. Right-click PluginCacheEnabled and click Modify. The Edit DWORD Value dialog appears.

5. Set the Value data to 1. 6. Close the Registry Editor.

Suppressing Interactive Service Messages

Because PrintWhere plugins appear as a selectable printers, users can accidentally submit print jobs to a plugin instead of to the PrintWhere driver itself. When this happens, PrintWhere attempts to display a message informing the user that the selected plugin is not a valid selection, and to choose the PrintWhere driver instead.

In rare cases, the print process uses system services, such as the print spooler, to display these messages. In cases where users do not have sufficient permissions to see these Interactive Service Messages, such as in Citrix environments, the user may not see the messages, and printing problems can occur. To avoid issues, administrators can disable Interactive Service Messages.

To disable Interactive Service Messages: 1. Open the Windows Registry Editor and navigate to the following Registry location:

PrinterOn PrintWhere v6.1 Administator Guide | 67 HKEY_LOCAL_MACHINE\Software\PrinterOn Corporation\PrintWhere 2. In the right pane of the registry window, right-click and select New > DWORD value. The new value is added to the registry, with the name editable. 3. Change the value name to SuppressISM. 4. Right-click SuppressISM and click Modify. The Edit DWORD Value dialog appears.

5. Set the Value data to 1. 6. Close the Registry Editor.

PrinterOn PrintWhere v6.1 Administator Guide | 68 Trademarks and service marks

The following are trademarks or registered trademarks of PrinterOn Inc. in Canada and other countries:

PrinterOn®, PrintAnywhere®, Print Simply Anywhere®, PrintWhere®, PRINTSPOTS®, the PrinterOn Logo, the PrinterOn Symbol, PrintConnect™, Secure Release Anywhere™, and PrintValet™ are trademarks and/or registered trademarks of PrinterOn.

The following are trademarks or registered trademarks of other companies:

Windows, , Microsoft Word, Microsoft Excel, Microsoft PowerPoint, and Microsoft Visio are trademarks or registered trademarks of Microsoft Corporation. iPad, iPhone, AirPrint, and OS X are trademarks or registered trademarks of Apple. iOS is a trademark or registered trademark of Cisco in the U.S. and other countries and is used by Apple under license.

Android, Chrome OS, and Chromebook are trademarks or registered trademarks of Google Inc.

BlackBerry is a registered trademark of BlackBerry, Ltd.

Other brands and their products are trademarks or registered trademarks of their respective holders.

Copyright notice

© Copyright 2017 by PrinterOn Inc.

All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopy, recording, or otherwise, without the prior written permission of PrinterOn Inc.

Disclaimer:

PrinterOn Inc. makes no warranty with respect to the adequacy of this documentation, programs, or hardware, which it describes for any particular purpose, or with respect to the adequacy to produce any particular result. In no event shall PrinterOn Inc. be held liable for special, direct, indirect, or consequential damages, losses, costs, charges, claims, demands, or claim for lost profits, fees, or expenses of any nature or kind.

Version 6.1 | November 2, 2017

PrinterOn PrintWhere v6.1 Administator Guide | 69