Printer Server migration from Windows 2003 to Windows 2016
Recently, I was assigned with a printer server migration project from Windows Server 2003 to Windows Server 2016.
The difficult thing was that, I couldn’t find any article which explains about the migration from 32-bit architecture to 64-bit architecture. May be I am not that good in googling.
My task was to migrate 100+ printers from windows server 2003 to windows server 2016 with all configurations.
First thought which came to my mind was to export all printers settings (Printer name, driver name, model, printer port name, printer port IP, printer share name etc.) to a text file using the inbuilt vb scripts in windows and then format it to a CSV file.
With the CSV file as source, PowerShell can be used to add printers to the new server using Add-PrinterPort and Add-Printer command-lets. I was able to migrate the printers to new server with the Name, share name, port, comments, location etc. But I was stuck at paper size. I was not able to set custom size(Height and Width) for the label printers.
Here the only change was – the driver name was different for existing printers in windows server 2003 and the new package for windows server 2016. So I had to change the printer driver name in PowerShell accordingly
After some thought process, I thought of printer migration tools. But there was some difficulty, it was for backup and restore of printers within windows server 2003.
Then I tried with Print Management tool in windows 2016, connected the print management mmc to windows server 2003, exported the printer’s and … import failed.
Then I used PrintBrm.exe to export the printer’s and import failed again. 🙁
The issue was with the driver “name” as mentioned above.
- Windows 2003 : Driver name – Zebra GK420t
- Windows 2016 : Driver name – ZDesigner GK420t
Below are the steps which I followed to migrate the printers from Windows Server 2003 to Windows Server 2016
Step-1
Add new driver to windows server 2003
Added the latest driver to windows 2003 to match the driver name. In the list of printer drivers, the new name was available.
Step-2
Change existing printer driver to newly installed driver
For ease of login, both old and new servers local administrator id and password is set to same.
From windows server 2016, Following PowerShell script was run to change the drivers in Windows 2003.
$Windows2003Name = "PRNSVR2003"
#Fetch all printers having driver name starting with Z, i.e. Zebra
$printers = Get-printer -ComputerName $Windows2003Name | where {$_.DriverName -like "Z*"}
foreach($prns in $printers)
{ #iterating through each printer and changing the driver name to new drivers
if($prns.DriverName -like "Zebra GK420t*")
{
#$prns.Name
Set-Printer -ComputerName $Windows2003Name -Name $prns.Name -DriverName "ZDesigner GK420t"
}
elseif($prns.DriverName -like "Zebra TLP2844-Z*")
{
#$prns.Name
Set-Printer -ComputerName $Windows2003Name -Name $prns.Name -DriverName "ZDesigner TLP 2844-Z"
}
}
While the script is running, we can see the driver getting changed in the windows 2003 server printer console
Step-3
Backup printers from old server
From Windows 2016, run printer migration tool – PrintBrm.exe
Open command prompt and run the following
cd %WinDir%\System32\Spool\Tools
printbrm.exe -s \\PRNSVR2003 -b -f Win2003Printer.printerExport
Step-4
Restore printers to new server
Double click the above created file to import the printers with all settings.
That’s it! All your printers are in the new server.
Thank you for reading my post. Hope it is helpful to you.
Hi Jeffy, we have used your tips to migrate printers from Windows 2003 server to Windows 2016.
There were about 60+ printers to migrate and have completed the printer migration swiftly with the configuration.
Thanks for the article and do post with helpful tips.