Installation

Set up WePrintEasy on a Remote Desktop Session Host in about two minutes – with the graphical setup wizard or by command line.

On this page

Preparation

  1. Check the system requirements: Windows Server 2019, 2022 or 2025 with the Remote Desktop Session Host role, member of an Active Directory domain.
  2. Try WePrintEasy on a test server first and create a backup or snapshot before installing or updating a production server.
  3. Download the ZIP file and unpack it on the terminal server, for example to C:\Install\WePrintEasy.

Setup wizard

Double-click Setup.cmd. The wizard asks for administrator rights and then for the language – English (default) or German. It applies to the setup wizard, the admin console and the agent log and can be changed later under Settings → Language. On an update, the previous language is preselected. The wizard then guides you through six steps and takes about two minutes.

Step 1: Welcome

The welcome page explains what WePrintEasy does and what the wizard sets up, and shows information about the server. An existing installation is detected – your assignments are kept.

WePrintEasy setup wizard, step “Welcome”: what WePrintEasy does, what the wizard sets up and information about this server.
Setup wizard – welcome page, detects an existing installation.

Step 2: Configuration

Choose where the printer list and the assignments are stored. All users need read access to this file.

  • This server only – C:\ProgramData\WePrintEasy\config.json. Right for a single terminal server.
  • Centrally on a share – e.g. \\fs01\WePrintEasy$\config.json. Recommended for several terminal servers, see RDS farm. Check tests whether the file can be written.
Setup wizard, step “Configuration”: choose “this server only” (C:\ProgramData\WePrintEasy\config.json) or central storage on a file share.
Configuration: local or central on a share, with write test.

Step 3: Printers from the file server

Enter your print or file server and click Load printers. All shared printers appear with driver, location and comment – in the screenshot 70 printers.

  • Preselected are the printers whose driver is already installed on this terminal server. The buttons All, None and Only with local driver change the selection.
  • Install missing drivers on this server now installs the drivers of the selected printers. This matters because since the PrintNightmare updates, standard users are not allowed to install printer drivers.

The selected printers form the printer list you choose from when assigning printers. You can refresh it later at any time.

Setup wizard, step “Printers from file server”: 70 shared printers with driver, location and comment, preselected because the driver is installed locally.
Printers from the print server – preselected if the driver is installed locally.

Step 4: Options

The recommended settings are preselected. Everything can be changed later in the admin console.

Option What it does
Do not use the client PC’s default printer (RDS policy) Sets the policy Do not set default client printer to be default printer in a session (fForceClientLptDef = 0). Recommended.
Keep the default printer fixed during the entire session If a program or the user changes the default printer, it is reset after about 30 seconds.
Turn off “Let Windows manage my default printer” Otherwise Windows makes the last printer used the default. Recommended.
Automatically connect network printers at logon Connects the assigned network printer if it is not connected yet.
Create the shortcut “WePrintEasy Printer Management” under Windows Tools Creates the shortcut to the admin console (named after the chosen language).
Group allowed to maintain assignments Optional AD group that may edit assignments without administrator rights (local configuration only).
Sign scripts Optional code signing, see Code signing.
Setup wizard, step “Options”: RDS policy, hold default printer during the session, turn off Windows-managed default printer, connect network printers, shortcut, editor group.
Options – the recommended settings are preselected.

Step 5: Installation

Check the summary and click Install. The live log shows every step: files copied, configuration created, permissions set, printer list saved, scheduled task registered, policy set and shortcut created.

Setup wizard summary before installing: configuration path, print server, 70 printers and the selected options.
Summary before installation.
Setup wizard during installation with live log: files copied, configuration created, scheduled task registered, policy set, shortcut created.
Installation with live log.

Step 6: Done

The last page summarises the next steps. With Open printer management now checked, the admin console opens when you click Finish.

Last page of the setup wizard with the next steps for the administrator and what happens for users.
Done – next steps.

Next steps:

  1. Open the admin console – under Windows Tools → WePrintEasy Printer Management (German interface: WePrintEasy Druckerverwaltung) or C:\Program Files\WePrintEasy\WePrintEasy-Admin.cmd.
  2. Tab Setup check: check that all items are “OK”.
  3. Tab Assignments: assign printers to users or AD groups – see the admin guide.
  4. Several terminal servers? Run the setup on every server with the same configuration path.
Users log off once

After the first installation, users have to log off and on again once (Start → user → Sign out). Just closing the window or disconnecting is not enough the first time. From then on the assigned printer is set at every logon and reconnect.

RDS farm

So that all session hosts use the same assignments, store the configuration centrally:

  1. Create a share, for example \\fs01\WePrintEasy$.
    • Share and NTFS permissions: Domain Users: Read; administrators (or a group such as “Printer admins”): Modify.
  2. Install WePrintEasy on every session host with the same path – in the setup wizard choose Centrally on a share, or by command line:
.\Install-WePrintEasy.ps1 -ConfigPath '\\fs01\WePrintEasy$\config.json' -PrintServer fs01 -DisableClientDefaultPrinter

With a central configuration, you grant edit rights on the share. With a local configuration, -EditorGroup 'COMPANY\PrinterAdmins' (or the option in the wizard) allows a group to maintain assignments without administrator rights.

Check that all servers read the same file

“Enforce now” in the admin console checks whether a terminal server reads the same configuration as the admin console – see Troubleshooting.

The language is stored in the configuration as well, so all session hosts with the same configuration use the same language.

Command-line installation

An alternative to the setup wizard, for example for automated installations. Open PowerShell as administrator in the unpacked folder:

Set-ExecutionPolicy -Scope Process Bypass
.\Install-WePrintEasy.ps1 -PrintServer fs01 -DisableClientDefaultPrinter

The installation

  • copies the program files to C:\Program Files\WePrintEasy,
  • creates the configuration C:\ProgramData\WePrintEasy\config.json (users may only read it, administrators change it),
  • with -PrintServer adds the shared printers of the print server to the printer list (default: only those with a locally installed driver; -ImportPrinters All for all; -InstallMissingDrivers installs missing drivers),
  • registers the scheduled task \WePrintEasy\WePrintEasy Agent (triggers: logon and reconnect of an RDP session; runs as the respective user, invisibly),
  • creates the shortcut “WePrintEasy Printer Management” under Windows Tools (with -Language de: “WePrintEasy Druckerverwaltung”),
  • with -DisableClientDefaultPrinter sets the policy Do not set default client printer to be default printer in a session (alternatively via Group Policy).

The script can simply be run again for updates – existing assignments are kept.

Installer parameters

Parameter Meaning
-Language Language of installer, admin console and agent log: en (default) or de. Without it, an update keeps the previous language
-ConfigPath Path of the configuration file (local or UNC). Default: C:\ProgramData\WePrintEasy\config.json
-PrintServer Print/file server whose shared printers are added to the printer list
-ImportPrinters WithLocalDriver (default), All or None
-PrinterListFile Text file with one \\server\share per line (instead of -ImportPrinters)
-InstallMissingDrivers Install missing drivers of the added printers
-EditorGroup AD group with write access to the local configuration
-DisableClientDefaultPrinter Set the RDS policy so the client’s default printer is not used
-InstallPath Installation folder (default: C:\Program Files\WePrintEasy)
-NoShortcut Do not create a shortcut under Windows Tools
-SelfSignedCertificate Sign the scripts with a self-signed certificate of this server
-SigningCertificateThumbprint Sign the scripts with an existing code signing certificate (e.g. company CA)
-TimestampServer Timestamp service for the signature, e.g. http://timestamp.digicert.com (internet access required)
-NoSigning Do not sign, or switch off existing signing

Examples

# Single server, printers with a local driver, RDS policy
.\Install-WePrintEasy.ps1 -PrintServer fs01 -DisableClientDefaultPrinter

# Additionally sign the scripts with a self-signed certificate
.\Install-WePrintEasy.ps1 -PrintServer fs01 -DisableClientDefaultPrinter -SelfSignedCertificate

# Central configuration, all printers, install missing drivers
.\Install-WePrintEasy.ps1 -ConfigPath '\\fs01\WePrintEasy$\config.json' -PrintServer fs01 -ImportPrinters All -InstallMissingDrivers -DisableClientDefaultPrinter

Update

Unpack the new version (or copy it into the previous folder) and double-click Update.cmd (asks for administrator rights). The updater reinstalls the program files and keeps all previous settings: configuration path, assignments, printer list, signing, editor group, RDS policy and shortcut. At the end it shows the system check.

Agents already running in user sessions use the new version from the next logon. For automated updates:

.\Update-WePrintEasy.ps1 -NoPause

Code signing

Without a signature, the logon task starts the agent invisibly with -ExecutionPolicy Bypass. Some antivirus products (for example Panda) consider this pattern suspicious. With signing, all installed scripts are Authenticode-signed, and task, shortcut and WePrintEasy-Admin.cmd start with -ExecutionPolicy AllSigned.

# Self-signed (one server, no CA needed)
.\Install-WePrintEasy.ps1 -SelfSignedCertificate

# Certificate from the company CA (template "Code Signing", with private key in LocalMachine\My or CurrentUser\My)
.\Install-WePrintEasy.ps1 -SigningCertificateThumbprint 'A1B2C3...' -TimestampServer 'http://timestamp.digicert.com'
  • Self-signed: the certificate CN=WePrintEasy Codesignatur (<server>) is valid for 5 years and its key cannot be exported. It is only trusted on this server (LocalMachine\Root and LocalMachine\TrustedPublisher). From 30 days before it expires, an update renews it automatically. Uninstalling removes it again.
  • Company CA: the installer adds the certificate to LocalMachine\TrustedPublisher. The server must already trust the CA (usual within a domain).
  • Signing is kept on updates. -NoSigning switches it off.
  • Important: if you change the installed scripts afterwards, their signature becomes invalid and the agent no longer starts. Run the installer again – it signs again. The Setup check tab shows the state under Signature.
  • If signing fails, the installer installs unsigned with a warning (Bypass), so the agent keeps working.
  • A signature makes false positives rarer but cannot rule them out. If it does not help, exclude the folders C:\Program Files\WePrintEasy and C:\ProgramData\WePrintEasy in the antivirus software. Never exclude powershell.exe itself.

Uninstall

.\Uninstall-WePrintEasy.ps1                     # configuration is kept
.\Uninstall-WePrintEasy.ps1 -RemoveConfig -RemoveClientDefaultPrinterPolicy

The uninstaller removes the scheduled tasks below \WePrintEasy\, the shortcut, the program folder and the registry key HKLM\SOFTWARE\WePrintEasy. A certificate created with -SelfSignedCertificate is always removed as well; certificates from your CA are left untouched. -RemoveConfig only deletes a local configuration – a central configuration on a share is never deleted, as other servers may use it. Agents that are still running end when the users log off.

Download WePrintEasy ZIP with setup wizard, update and uninstall scripts. Free · MIT licence

Download WePrintEasy 1.0.3