Error “Unable to load client print control” when printing reports in Reporting Services (summary of possible causes and solutions)

Due to the great confusion I perceive about this error and its possible causes and solutions, I decided to remove my 3 old posts that talked about this error and create a single and more complete posts that I hope helps you resolve all the possible causes of this error when trying to print reports in Reporting Services. 

 

“Unable to load client print control”

 

POSSIBLE CAUSES AND PROPOSED SOLUTIONS:

 

There could be 2 possible causes for this issue, very differnt from each other:

 

1. This error could be caused by a known update to the RSClientPrint control (MS09-062): https://support.microsoft.com/kb/971023

There are some fixes already built for this (1. To fix direct accesses to Report Manager 2. To fix applications that access Report Manager like CRM in your case). See bellow:

1. To fix accesses to Report Manager you should install the following in the Report Server machine:

Service Pack 3 de Microsoft SQL Server 2005

https://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=ae7387c3-348c-4faa-8ae5-949fdfbe59c4

and

Cumulative update package 8 for SQL Server 2005 Service Pack 3

https://support.microsoft.com/kb/978915

2. To fix accesses to the Reporting Services from an application (like CRM, SharePoint or a web application) you would need to install the fixes bellow. They will be different depending on the version of the Report Viewer control:

To check the version of the ReportViewer control.

1. Open a report for viewing on a client machine
2. Then right click on the report and select “View Source”.

Locate the line that looks like this:
<script src="https://blogs.msdn.com/TestRSClientPrintReportViewer/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=X.Y.ZZZZ

a) If the control type is “Reserved.ReportViewerWebPart.axd” then this is an issue with SharePoint.

The “Microsoft SQL Server 2005 Reporting Services Add-in for Microsoft SharePoint Technologies” has been updated to work with the new rsclientprint.dll.

Download center link:
https://www.microsoft.com/downloads/details.aspx?FamilyID=1e53f882-0c16-4847-b331-132274ae8c84&displaylang=en

b) If the control type is “Reserved.ReportViewerWebControl.axd” we should check the following:

We have 2 different major versions here: 8.00.50727 and 9.00.XXXX.
If you see version 8.00.50727 this means you are browsing reports from within CRM or using the ReportViewer control in a custom 2005 web application.
If you see version 8.00.50727 and the version is earlier than 8.00.50727.1843 then you should install Report Viewer Redistributable 2005 Service Pack 1 on the ReportServer or on the CRM server or machine where the web application is running:

Microsoft Report Viewer Redistributable 2005 SP1 (Full Installation)

https://www.microsoft.com/downloads/details.aspx?familyid=E7D661BA-DC95-4EB3-8916-3E31340DDC2C&displaylang=en

and

Report Viewer Redistributable 2005 Service Pack 1 GDIPLUS.DLL Security Update

https://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=0dfaf300-2b53-4678-a779-0d805ddfe538

c) If you see version 9.00.XXXX or 9.0.XXXX then you are browsing through Report Manager, Report Server or perhaps a custom web application built with VS 2008.
Then you should install the below on the report server and in the machine where the web application is running:

Microsoft Report Viewer 2008 SP1 Redistributable
https://www.microsoft.com/downloads/details.aspx?FamilyID=bb196d5d-76c2-4a0e-9458-267d22b6aac6&DisplayLang=en

And

Report Viewer Redistributable 2008 Service Pack 1 GDIPLUS.DLL Security Update

https://www.microsoft.com/downloads/details.aspx?familyid=6aaa74bd-a46e-4478-b4e1-2063d18d2d42&displaylang=en

After having updated the ReportViewer control you must issue an iisreset command so that the updated controls will take effect.

 

2. Or it could be a permissions issue:

When trying to print reports from Reporting Services, the RSClientPrinty control needs to be downloaded and installed to the client machines. This is done automatically the first time a user tries to print a report and the users need to be administrators or Power Users in order to be able to download the control though the web.

 

Users that are not administrators nor Power Users don’t have permissions to deploy of the RsClientPrint control to IE from the server (not allowed installing ActiveX components)

 

This happens the first time you run a report or after installing some cumulative updates or service packs that modifies this control and needs to be redeployed. Each time the client clicks on the print button; there is a round trip to the server to check if the client has the latest version.

 

The following links explains that you need administrator permissions in order to download the print control to download it from the server:

https://msdn.microsoft.com/en-us/library/ms159190(SQL.90).aspx

2 POSSIBLE ALTERNATIVES:

Deploy the control manually:

 

If the users weren’t administrators or power users, the issue could be resolved by deploying the files manually:

 

1. Go to C:\Program Files\Microsoft SQL Server\MSSQL.x\Reporting Services\ReportServer\bin on the report server and copy the rsclientprint.cab file

2. Extract the files from the rsclientprint.cab file.

3. Copy all the files to the client computer to Windows\Downloaded Program Files (you might need to do it using the command windows)

c:\print\RSClientPrint.dll

c:\print\rsclientprint.inf

c:\print\RsClientPrint_1028.rl

c:\print\RsClientPrint_1031.rl

c:\print\RsClientPrint_1033.rl

c:\print\RsClientPrint_1036.rl

c:\print\RsClientPrint_1040.rl

c:\print\RsClientPrint_1041.rl

c:\print\RsClientPrint_1042.rl

c:\print\RsClientPrint_2052.rl

c:\print\RsClientPrint_3082.rl

4. Register RSClientPrint.dll by opening a command line (Start->Run) regsvr32 [path]RSClientPrint.dll

Or creating a script to install the control using “Run As”

“Run As” is a tool that allows running programs as a different user than the currently logged-on user. It is described in the article:

 

How to enable and use the "Run As" command when running programs in Windows

https://support.microsoft.com/?id=294676

Steps to create the script would be:

1. On a Domain Controller, create a share with the appropriate rights for a "simple user"
2. On this share create a file called runas.vbs with the following code:

'
'RunAs Helper
'Syntax: runas.vbs <username> <command>
'
set args=wscript.arguments
username = args(0)
' Enter the password in the variable pass
pass = "administrator password"
'Get the command arguments
for i=1 to args.count - 1
command = command & args.item(i) & " "
Next
set shell=wscript.createobject("Wscript.shell")
'Run runas.exe
shell.run "runas.exe /user:" & username & " """ & command & """",2,FALSE
'Wait for runas.exe to load, this time could be shorter, but is set to 1000
'to be safe
wscript.sleep(1000)
'Send the password and hit enter
shell.sendkeys pass & "{ENTER}"
wscript.sleep(1000)

3. Extract the dll and inf files from your ActiveX on the share.
4. Download the Windows Script Encoder, available on

https://www.microsoft.com/downloads/details.aspx?FamilyId=E7877F67-C447-4873-B1B0-21F0626A6329&displaylang=en

and encrypt the original vbs file: original_vbs_file.vbs vbs_encrypted_file.vbe

The script encoder is a command-line tool that allows a scriptwriter to protect the contents of a script from unauthorized copies or modifications while ( at the same time ) allowing the script to run.

       5- Create a logonscript with the following instructions:

net use z: \\server\share <file://\\server\share> 'Map the share to a local drive.

The files need to be local so as to be installed..

z:\vbs_encrypted_file.vbe domain\admin rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 z:\rapport.inf
z:\vbs_encrypted_file.vbe domain\admin rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 z:\vbs.inf
net use z: /d 'Delete the mapping

 

 

I hope this helps,

 

****

Maria Esteban

Reporting Services Support Engineer