Welcome to MSDN Blogs Sign in | Join | Help

Syndication

News

All my posts are provided "AS IS" with no warranties, and confer no rights.

Where are my readers?


Other blogs from my colleages

"Unable to load client print control" after installing a Service Pack or Cumulative Update of SQL Server 2005

 

After installing a Service Pack or Cumulative Update of SQL Server 2005, you might get the following error when trying to print a report from Reporting Services:

 

Unable to load client print control

 

CAUSE :

 

The RSClientPrinty control needs to be updated to the client machines and the users are not administrators or Power Users.

 

 

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)

 

When installing any cumulative update or service pack, the control is 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.

‎‎

There is a cab file provided for this, so System Management Server or equivalent 3rd party software software to manage the machines) can deploy it to all machines, or we can use a script to redeploy it the rest of the machines.

‎‎

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

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

 

 

POSSIBLE ALTERNATIVES:

 

There are several options you can follow if cannot provide the users with administrator rights:

 

1.       Deploy the files manually: Extract the files from the cab file, copy them to the machines and register the rsclientprint.dll with regsvr32 (See bellow for more details)

2.       Create a logon script that will install the ActiveX control using “Run As”. (See bellow for more details)

3.       Publish RsClientPrint control to the domain clients via the Active Directory. From a high level, you would have to first convert the RsClientPrint.cab file into an MSI file and then publish the MSI file via Active Directory. (See bellow for more details)

 

I describe bellow the 3 options in more detail:

 

Deploy 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 the same folder

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

 

 

Sample script that will install the ActiveX 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

http://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

http://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

 

 

 

Publish RsClientPrint control to the domain clients via the Active Directory.

From a high level, you would have to first convert the RsClientPrint.cab file into an MSI file and then publish the MSI file via Active Directory.

The steps in more detail would be:



1. Download the free Visual Studio Installer from the following link. (It will install to Microsoft Visual Studio 6.0.) Microsoft Visual Studio Installer 1.1


Microsoft Visual Studio Installer 1.1

http://msdn2.microsoft.com/en-us/vstudio/aa718352.aspx


2. Launch Visual Studio Installer and create a new project. (I named mine Setup1.)
3. Copy the RsClientPrint.cab file to the Setup1 directory.
4. Create a new subfolder, Cab.
5. Open the RsClientPrint.cab file with Windows Explorer (right click, select Windows Explorer, or simply left double-click).
6. Select all files, right click, Extract.
7. Extract the files to the Cab subfolder.
8. From the Visual Studio Setup1 project view, open the TargetMachine folder, and the Associations view. This will open the Setup1 – Associations window.
9. Right click on COM Objects, Add COM Object. You will need the RsClientPrint’s CLSID and TYPELIB GUIDs. (This is detailed below.)
10. Enter the CLSID under the COM Objects node.
11. Enter the TYPELIB GUID under the Type Libraries node.
12. From the Build menu, select Build Configurations, Release.
13. From the Build menu, select Build.
14. The Setup1.msi file will be created in the Output\DISK_1 folder.

Here are the steps to determine the CLSID and TYPELIB GUIDs for the RsClientPrint control needed in the Visual Studio Installer project.
1. On the ReportingServices server, launch REGEDIT.
2. Open the HKEY_CLASSES_ROOT hive. (It will have MANY entries.)
3. Scroll down until you find the RSClientPrint.RSClientPrint node; open it.
4. Click the CLSID folder; the default value of the Data element on the right side of the window is the CLSID.
5. Doubleclick the (Default) tag; right click, Copy; Cancel. (Don’t change the value!).
6. Paste the value into the COM Objects element from step 10 above. (And, copy the value to a Notepad instance – you’ll need it again now.)
7. Scroll back up the registry values to the CLSID node; open it. (It also has MANY entries.)
8. Find a node that has the same value as the CLSID you just copied; open it. (It will have several folders, including ProgID and Typelib.
9. Click the ProgID node; the (Default) value should be RSClientPrint.RSClientPrint.1 (It is isn’t, you’re in the wrong key.)
10. Click the Typelib node; doubleclick the (Default) tag; right click, Copy; Cancel. (Don’t change the value!).
11. Paste the value into the Type Libraries element from step 11 above.

At this point, are now ready for the remaining steps detailed in the following KB article:
How To Install ActiveX Controls in Internet Explorer Using the Active Directory
http://support.microsoft.com/kb/280579/en-us

 

 

Maria Esteban

Reporting Services Support Engineer

Published Thursday, December 11, 2008 11:32 AM by mariae

Filed under:

Comments

# infoblog &raquo; &#8220;Unable to load client print control&#8221; after install a Service Pack or Cumulative Update of SQL Server 2005 @ Thursday, December 11, 2008 6:47 AM

PingBack from http://blog.a-foton.ru/index.php/2008/12/11/unable-to-load-client-print-control-after-install-a-service-pack-or-cumulative-update-of-sql-server-2005/

infoblog &raquo; &#8220;Unable to load client print control&#8221; after install a Service Pack or Cumulative Update of SQL Server 2005

Anonymous comments are disabled
Page view tracker