Silently deploy SSRS Printing Components for SQL 2008 R2 (RSPrintClient.dll)

In secure environments you sometimes need to install ActiveX components. I wanted to create a silent installation of the Printing components of the SQL Server Reporting Services 2008 R2 in a lock downed environment. The components are needed to present the print dialog box in the Reporting Services website.

In a non locked down environment the user can install the components manually (when prompted by the website) and the files gets installed to %windir%\Downloaded Program Files. The package is 13 files in total (1 *.dll, 1 *.inf and 11 *.rll files).

How to do a silent deployment (the whole process)

  1. Find the correct version of the RSClientPrint you need
    You will find the file on the Reporting Services website that you want to deploy patches from. Normally under the following directory:
    C:\Program Files\Microsoft SQL Server\MSRS10_50.INSTANCENAME\Reporting Services\ReportServer\bin.
    In this folder you will find 3 *.cab files (and need to choose based on the browser the users are using):
    RSClientPrint-ia64.cab
    RSClientPrint-x64.cab
    RSClientPrint-x86.cab
  2. Extract the CAB file using WinZip or similar tool to a directory
  3. Either deploy using a cmd-file script or repackage the application using a MSI packager
    This deployment should be done on all Workstations that should print from the Reporting Services website.  

Deployment with silent script (batch file) on a Workstation

@echo off
REM Create folder
md "%windir%\Syswow64\srs_rpe" 
REM Copy files
xcopy "%~dp0" "%windir%\Syswow64\srs_10_40_4263" /e /c /q /r /h /y 
REM Register DLL file
%windir%\SysWOW64\regsvr32.exe /s %windir%\Syswow64\srs_rpe\RSClientPrint.dll 
REM Exit script
Exit

It's important that you use the correct regsvr32.exe based on 32 or 64 bit DLL-file.

Deployment with a MSI repackage

  1. Start your favorite MSI re-package software
  2. Create a new package (MSI)
  3. Make sure the package is targeting the correct platform (32 or 64 bit)
  4. Make sure the package has a uniqe GUID
  5. Install the files to any directory (I normally choose %windir%\System32\SRS-version) - but if I target a 32 bit package to a 64 bit OS the files will be in C:\Windows\SYSWO64\SRS-version)
  6. Build and deploy
If you package the installation as MSI or deploy using CMD-script (with GPO startup script or any other distribution software) to all Workstations then users doesn't need to have "local administrator" permissions when logging on to the SRS website to print (as you already have deployed the correct ActiveX Control).

2 comments:

boxhead127 said...

Thanks! this works perfectly, I used your method and deployed a package using SCCM 2012. I made it for both 32 and 64 bit to ensure anyone who chose to install the client would get a working solution no matter which browser version they were using.
My modification of your script looked like this:
@echo off
REM Create folder
md "%windir%\syswow64\srs_rpe"
md "%windir%\system32\srs_rpe"
REM Copy files
net use x: \\server\sources\applications
xcopy x:\rsclientprint-x86\*.* "%windir%\syswow64\srs_rpe" /e /c /q /r /h /y
xcopy x:\rsclientprint-x64\*.* "%windir%\system32\srs_rpe" /e /c /q /r /h /y
REM Register DLL files
c:\windows\syswow64\regsvr32.exe /s c:\windows\syswow64\srs_rpe\rsclientprint.dll
c:\windows\system32\regsvr32.exe /s c:\windows\system32\srs_rpe\rsclientprint64.dll
net use x: /del
REM Exit script
Exit

dhbennett said...

Thanks! This worked great!