/PrintPrince

Print Prince is a GUI tool to assist in printer management with Cirrato and eKlient's SysMan.

Primary LanguageC#MIT LicenseMIT

Print Prince

Print Prince aims to centralize administration of printers in environments using both Cirrato One and the tool SysMan (in Swedish) as their printer management.

By using the APIs of Cirrato and SysMan, printer management can be done from a single tool. Print Prince optimizes printer management workflow with a GUI simple and quick enough for even the first line support to use.

  • Flexible - Using Print Prince enables solutions such as login scripts to install printers through the Cirrato Client's API while still having the benefits of adding printers to computers in SysMan.
  • Modern - Print Prince replaces the dated Microsoft Management Console, implementing Material Design with a modern look and responsive design focused on user experience.
  • Minimize Mistakes - When working with two systems and needing to create printers in both it's easy to forget one, Print Prince prevents mistakes by creating the printer in both by default. Print Prince also logs usage of the tool to the Application event log of the machine under the source .NET Runtime to make changes trackable.
  • Maximize Value - No more of several licenses for the same printer, Print Prince validates creation of printers against both name and IP address in Cirrato to make sure you don't pay double for what you have.
  • Lightweight - Because Print Prince stores no data on its own, it's quick. All communication happens in the background in real-time with Cirrato and SysMan in your own environment to keep Print Prince responsive.
  • User Authentication - User rights are assigned in each system which lets Print Prince authenticate the user using your normal settings through the APIs to make sure no one unauthorized gets into your systems. An optional settings exists to utilize an extra AD group for Print Prince to make the default access read-only and give access only to specified AD users.

Requirements

The machine running Print Prince requires at least .NET Framework 4.6.1 and the Cirrato Print Management Client (PMC) installed, configured to the Cirrato system in your environment.

If Print Prince is used from a remote server, the communication with Cirrato and SysMan servers needs to be assured according to port configuration in each system. The default ports of both APIs are TCP 80 or 443 (HTTP/HTTPS).

Setup

Install Print Prince through the setup file among the releases, download the zipped tool for a portable version or build the project on your own.

Configuration

Print Prince comes with a .config file where the Cirrato Print PMC installation path and SysMan URL need to be set. There is also an option to specify the distinguished name of an AD group to make the default behavior of the tool read-only and require membership in the group to create, update or delete printers. This setting supports nested group membership.

Rights

  • Cirrato API rights are assigned through a separate AD group for the API, set in the Cirrato Configuration Manager where direct membership of the user is required (no nested groups because of how Cirrato works).
  • SysMan API rights are shared with the normal rights assignment in the SysMan settings, Print Prince uses the credentials of the user running the application for SysMan communication.
  • Print Prince checks the membership of the user running the application if an AD group is specified in the .config file to enable read-only mode by default.

Using Print Prince

Logging into Print Prince

When using Print Prince the user needs to log into the Cirrato PMC. If the user is not already logged into the PMC, Print Prince will handle the login by prompting the user when started. No data is stored in Print Prince, the credentials are only requested if needed and only used to access Cirrato's API.

Creating a Printer

When creating a printer, Print Prince suggests a naming convention by finding printers in Cirrato that contain three underscores, matching SITE_BUILDING_FLOOR_xx where xx is a series of numbers starting at 01. Print Prince suggests the first available number in the series, but the name can be changed freely afterwards if desired. If this is not a naming convention that you use, feel free to fork Print Prince and remove the naming suggestion parts. Print Prince requires each field to be filled, and verifies that the name and IP address is not already used by a printer in Cirrato. Print Prince also gathers all configurations and deployments of drivers in your environment and lets you specify a configuration that will be applied to the queue connected to the printer being created.

Listing Printers

Print Prince lets you easily list all printers in Cirrato with their associated information. If they don't exist with the same name in SysMan they are marked red to make troubleshooting easier. The list implements filtering, sorting and the ability to open the properties of a printer to update information, to create it in SysMan or to delete it in both systems. If the printer exists in SysMan, Print Prince also lets you see which computers or users have the printer installed.

Building Print Prince

The full solution includes two extra projects for documentation and installation files. To build the full project, SHFB and the Visual Studio extension Microsoft Visual Studio Installer Projects are required on the machine.

This enables creation of automatic documentation based on the XML comments in the code, and building installation files such as .msi.

Credit

Print Prince implements and uses the following libraries, frameworks or solutions:


GridViewSort is written by Thomas Levesque.

Licensing


ValidatableModel written by Anthyme Caillard is implemented as part of the ValidatableViewModelBase class.

Licensing


PasswordHelper is written by Christian Moser and helps with binding to the password field of a PasswordBox.

Licensing


ExceptionExtensions written by StackOverflow user ThomazMoura inspired the implementation of ExceptionExtender.


DomainManager is written by StackOverflow user Nate B.

Disclaimers

While Print Prince is used to assist with printer management in environments using commercial systems, neither Print Prince nor the developer has any affiliation with the owners or developers of these systems, Print Prince simply uses the APIs with the functionality they had during the development of Print Prince (SysMan 3.1.18291, Cirrato PMC 2.3.2).