Various types of error messages can occur if a client tries to print in a Terminal Server session or remotely in Windows Server 2003, 2008 and 2012.
If a client tries to print from Word, Excel, Power Point, Notepad or Adobe Acrobat Reader in a Terminal Server Session, Citrix Session or remotely the below error messages can occur.
“Current printer is unavailable. Select another printer”
“No default printer selected”
We saw that these various type of error messages are mostly related to the following printer drivers :
If this problem occurs the client cannot print and should select another printer. Sometimes printing a test page allows the client to print to the prefered print queue again.
1. How to properly install a Printer Driver in Windows 10 ?
2. HP MFP Printers can Disappear from Devices and Printers
3. How to make Print Services Role Highly Available in Windows Server 2016 and 2019 Failover Clustering
After several tests and analysis we found out that the
"DevModes2" problem was the reason of these various types of error messages.
"DevMode2" registry entries could not be updated or could not be set properly and caused to these error messages.
Removing the affected Print Queue Connections manually or via Script
(printui.dll) from the registry key below and mapping the Print Queues again via “Point and Print” or via Script has solved the problem in our case .
We have created a batch job
(*.BAT) for our customer because hundreds of users were affected from this problem and bound it as logon script which deletes and maps the print queues again.
rundll32 printui.dll PrintUIEntry /dn /n\\machine\printer
@ping 127.0.0.1 -n 60 -w 1000> nul
rundll32 printui.dll PrintUIEntry /in /n\\machine\printer
rundll32 printui.dll PrintUIEntry /dn /n\\192.168.2.5\HPColorLaser<- Note : Please use the Printer Share Name to delete the Connection from the registry of the affected user or users. You can of course delete the connection manually if only a few users are affected.
rundll32 printui.dllis only required if you have too many users which are affected and you need to automate it.
@ping 127.0.0.1 -n 60 -w 1000> nul<- Note : We have added the ping localhost of 60 seconds because we figured out that on some clients it took some time to delete the connection therefore we let the script wait 60 seconds prior to mapping the queue again.
rundll32 printui.dll PrintUIEntry /in /n\\192.168.2.5\HPColorLaser <- Note : Once we run printui.dll with the /in parameter the connection is added again.
Good luck !