Print Server Migration to Microsoft Azure

Last Updated on June 3, 2021

Migration of Print Server or Citrix Universal Print Server to a public cloud like Microsoft Azure is no different from the migration of print queues between two on-premises print servers within or across DataCenters. A public cloud offering like Microsoft Azure allows you to either migrate the print server from on-premises to an Azure region with the help of ASR (Azure Site Recovery) or export-import of print queues from an on-premises print server to a print server VM in Azure.

ASR should be your first choice, as it will migrate the whole VM from on-premises to Azure. All you have to do is ensure that on-premises print server is discoverable in Azure and keep the Resource Group, VNET, Subnet and Site2Site VPN (or Express Route) ready. These activities are the backbone of your Migration project and your Cloud Architects would have already implemented them in the designated subscription.

In Scenarios where customer has decided to modernize the legacy IT Infrastructure by moving all the workload to cloud (Re-Platform, Re-Architecture, Re-Hosting), you may find that ASR cannot be used. For Instance – The print server role is installed on a 32-bit version of windows server 2003. Obviously, all the print drivers will be 32-bit. You see, migrating a legacy and error prone printing infrastructure to Azure does not make sense and it defeats our purpose of modernizing the IT infrastructure. The solution is to create a Windows Server 2016 or 2019 VM in Azure, install Print Server role, install 64-bit print drivers or just Citrix Universal Print Server (server component) and then import print queues from the on-premises print server. Let’s see how to do that.

Print server Migration from Windows Server 2003 to Windows Server 2016

This type of migration is also called Cross Architecture Migration.

  1. Build a Windows Server 2016 Virtual Machine in Azure Region of your choice.
  2. Install Print Server role in that machine. If you want to use this server as a Citrix Universal Print Server then install Universal Print Server from the Citrix Virtual Apps and Desktop Meta installer. George Spiers has written a tremendous article on this topic.
Print Server Migration to Microsoft Azure - Print Server Role
Print Server Migration to Microsoft Azure - Print Server Role 2
  1. Ensure that Administrative share \\servername\Print$ is accessible
  2. Ensure that Print Spooler service’s recovery option is set to restart on Azure as well as On-premises Print Server
  3. Ensure that Remote Registry service is running on On-premises print server
  4. Install all required 64-bit print drivers (v4 or type 4 preferably). This is very important that you install printer drivers in advance before going to next 2 steps. For Citrix Universal Print Server, Universal Print Server installer would have already installed Citrix Universal Print Driver.
  5. Open Command Prompt as Administrator and execute following command:
C:\Windows\System32\spool\tools>Printbrm.exe -b -nobin -s \\<On-premises print server hostname or FQDN> -f C:\PrinterMigration\Backup.printerExport

Here we are backing up (or Importing) the print queues and printer drivers on Azure print server from On-premises print server. –nobin switch means omit the binaries from the backup. Binaries are not required for a Cross Architecture (x86 to x64) migration.

  1. After successfully completing the Backup process, execute following command:
C:\Windows\System32\spool\tools>printbrm.exe -r -s \\<Azure Print Server hostname or FQDN> -c DriverMapping.xml -f C:\PrinterMigration\Backup.printerExport -o force

Here we are restoring the print configuration we backed up in previous step. –r means restore, -s means Target server name, -f means the backup file and –c means the configuration file for PrintBRM. This configuration file (.xml) is where the magic is happening. In this file, we are mapping the print drivers installed in on-premises print server with the print drivers we installed on Azure Print servers in one of the above steps. Driver mapping ensures that the print driver assigned to the print queue imported from on-premises print server will be replaced  with the print driver installed on the Azure print server.

This is how you can create a configuration file and save it as .xml file.

<BrmConfig> 
<PLUGINS></PLUGINS> 
<LanguageMonitors></LanguageMonitors> 
<DriverMap> 
<DRV old="HP Color LaserJet 5550 PCL 6" new="Lexmark X466de Class Driver"/>
<DRV old="HP DesignJet 750C+ (E/A0) by HP" new="Lexmark X466de Class Driver"/>
<DRV old="HP LaserJet 2100 PCL6" new="Lexmark X466de Class Driver"/>
<DRV old="HP LaserJet 4" new="Lexmark X466de Class Driver"/>
<DRV old="HP LaserJet 4100 PCL 6" new="Lexmark X466de Class Driver"/>
<DRV old="HP LaserJet 4100 Series PCL" new="Lexmark X466de Class Driver"/>
<DRV old="HP LaserJet 4350 PCL 6" new="Lexmark X466de Class Driver"/>
<DRV old="HP LaserJet 5200 PS" new="Lexmark X466de Class Driver"/>
<DRV old="HP Universal Printing PCL 6" new="Lexmark X466de Class Driver"/>
<DRV old="Lexmark E360dn XL" new="Lexmark X466de Class Driver"/>
<DRV old="Lexmark E460dn XL" new="Lexmark X466de Class Driver"/>
<DRV old="Lexmark MS510 Series XL" new="Lexmark X466de Class Driver"/>
<DRV old="Lexmark X466de" new="Lexmark X466de Class Driver"/>
<DRV old="TallyGenicom 9022 PCL 6" new="Lexmark X466de Class Driver"/>
<DRV old="Lexmark MX510 Series XL" new="Lexmark X466de Class Driver"/>
<DRV old="TP Output Gateway PS" new="Lexmark X466de Class Driver"/>
<DRV old="TP Output Gateway" new="Lexmark X466de Class Driver"/>
</DriverMap> 
</BrmConfig>
  1. Open Print Management (Run/PrintManagement.msc) and verify that all the print queues have been created.

Migrate Print Server from Windows Server 2008 R2 to Windows Server 2012 or 2016

Migration of Print queues between servers with same architecture (x64 or x86) is very straightforward. As you don’t have to deal with the mapping of drivers, the migration process can be accomplished with the help of GUI. Print server migration to Microsoft Azure doesn’t require any specific procedure. You can either migrate the print server from on-premises to Azure using Azure Site Recovery (ASR) or create a VM in Azure, install print server role and then export-import print queues along with print drivers.

  1. Build a Virtual Machine in Azure Region of your choice.
  2. Install Print Server role in that machine.
  3. Ensure that Administrative share \\servername\Print$ is accessible
  4. Ensure that Print Spooler service’s recovery option is set to restart on Azure as well as On-premises Print Server
  5. Ensure that Remote Registry service is running on On-premises print server
  6. Open Print Management Console (Run/PrintManagement.msc)
  7. Right click on the Print Management and select Migrate Printers
Print Management - Migrate Printers
  1. Select Export printer queues and printer drivers to a file and click on Next
Print Server Migration to Microsoft Azure
  1. Select A print server on the network and enter the name of the print server or browse it
Print Migration - Server on the Network
  1. Click on Next. A list of Print Queues and Print Drivers will show up. You can review them to confirm that all the print queues and drivers are correctly captured or not. Click on Next
Print Server Migration to Microsoft Azure
  1. Browse the location where you want to save the export file and give it a name. The wizard will add .printerExport extension to the name of the file
Print Migration - Export File Name and Path
  1. Click on Next. It will start exporting the print queues, print drivers and ports
Print Server Migration to Microsoft Azure
  1. Click on Finish. If it says, “The operation completed with no errors” then the export can be assumed to be successfully completed. Otherwise, you can click on “Open Event Viewer” button to check the failed exports. In Event viewer, you may find error like this:
Print Migration - Error
Print Migration - Export Complete
  1. Right click on the Print Management and select Migrate Printers
  2. Select Import printer queues and printer drivers to a file and click on Next
  3. Browse the file you just created and click on Next
Print Migration - Import Printers
  1. Next screen will show the list of Print Queues and Print Drivers that will be imported from the file. Click on Next.
  2. Select This print server
Print Migration - This Server
  1. Since we are building a fresh print server with no existing printers, choosing either Keep existing printers or Overwrite existing printers doesn’t make a difference. I prefer to choose Keep existing printers.
Print Migration - Import Mode
  1. Listing printers in the Directory allows users to search a shared printer in Active Directory and find the nearest printer. I prefer to choose List printers that were previously listed because this is the safest option out of three. Visit Mitch Bartlett’s blog to understand how to add or delete printers in Active Directory
Print Migration - List in the Directory
  1. Checking Convert LPR Ports to Standard Port Monitors option will convert LPR (Line Printer Remote or Line Print Requester) ports to new and fast standard TCP/IP Port Monitors. LPR is a mechanism to send print command to LPD printer. Microsoft discontinued LPD from Server 2012. I would prefer to it later manually.
  2. Click on Next. Migration wizard will start the import. Once finished, click on Finish.
Print Migration - Importing
  1. Congratulations, Print Server Migration to Microsoft Azure is completed.

If you are interested, explore CVAD 1912 LTSR Installation series starting with Delivery Controller 1912 LTSR.

3 thoughts on “Print Server Migration to Microsoft Azure

  1. Hi.
    I followed the procedure as mentioned, but I am not able to view the printer queues. However in the log it is showing as queues are restored successfully.

    1. Hi Rahul,

      When you did the import, did you see list queues and drivers? Did you override existing printers? Same architecture or cross? What is the operating system of new print server?

      1. Hi Nishith,

        I have migrated print servers from 2003 to 2016 64 bit
        When I finished the importing, it was showing successfully restored queues for the correctly mapped drivers printers.
        I just found out that from new server there is no connectivity to the printers, may be this is the reason why queues are not visible ?

Leave a Reply