Home HOW-TO How to troubleshoot “Current printer is unavailable. Select another printer” and “No default printer selected” error messages ?

How to troubleshoot “Current printer is unavailable. Select another printer” and “No default printer selected” error messages ?

by Cengiz Kuskaya

Problem Description

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”
“Insufficient memory”

We saw that these various type of error messages are mostly related to the following printer drivers : Kyocera, Minolta, Brother, Samsung and HP.

Impact

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.


Related Articles

How to properly install a Printer Driver in Windows 10 ?
HP MFP Printers can Disappear from Devices and Printers
How to make Print Services Role Highly Available in Windows Server 2016 and 2019 Failover Clustering


Solution

After several tests and analysis we found out that the DevModePerUser and/or DevModes2 problem was the reason of these various types of error messages.

Basically DevModePerUser and/or DevMode2 registry entries could not be updated or could not be set properly and caused to these error messages.

HKEY_CURRENT_USER\Printers\DevModePerUser
HKEY_CURRENT_USER\Printers\DevModes2

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 .

HKEY_CURRENT_USER\Printers\Connections\DeleteAffectedPrintQueue

Delete_effected_print_queue

Automation

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


Related Articles

How to make Print Services Role Highly Available in Windows Server 2016 and 2019 Failover Clustering

Additional Explanation

By default "HKEY_CURRENT_USER\Printers" is empty.

HKEY_CURRENT_USER_Printers

Once we connect to a shared Network Printer, in this example “HPColorLaser” the following Registry KEY at the second screenshot below is added to the Connections.

Shared_Printer

"HKEY_CURRENT_USER\Printers\Connections\,,192.168.2.5,HP Color Laser Jet" is added to the "Connections" as an example via Point and Print.

Printer_Connection

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.dll is only required if you have too many users which are affected and you need to automate it.

printui_delete

@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.

printui_re_create_connection

Good luck !