Unable to load client print control

  • Hello,

    My clients are seeing this error: "Unable to load client print control" when clicking on the print button on SSRS reports.

    The server is a Window Server 2003 R2, Service Pack 2, Standard, 64-bit. The database on the server is a SQL Server 2005, SP 2, Standard Edition, 64-bit.

    Clients have old versions of the rsclientprint.dll, 2005.90.3042.0. I have learned that this updated file is in a cab file, but the cab file is on the server which is a 64-bit install. Clients are 32-bit. I installed the ReportViewer SP1, but no affect.

    To fix this error, should I upgrade to SP3 on the database? I have read that once I install SP3, I need to removed hot fixes. Is this true? Can you advise me on how to fix this problem?

    Thanks,

    Paul

  • Hi there,

    We have had the same issue with Reporting Services 2008 R2 and users that don't have administrative rights to the local PC. In our particular case the users couldn't register the RSClientPrint.dll in order to print. It would respond with the "Unable to load client print control".

    After a considerable amount of research and testing we resolved the issue this way:

    1. Extracted the contents of RSClientPrint x86 and x64 cab files located in the following directory of the Reporting Services installation C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin (or wherever you have placed it). We placed these files in a user accessible location on the domain.

    2. Created a VBScript file that copies the contents of these directories based on the Operating System of the PC in question.

    3. Placed this VB Script file in the script repository of Active Directory for access by Group Policy.

    4. Created a GPO that references the above VB Script under Computer Configuration > Windows Settings > Startup.

    5. Created a second VB Script that registers the RSClientPrint.dll using administrative credentials and placed it in a user accessible location on the domain. This location and files were restricted by ACLs.

    6. Created a batch file that references the second VB Script and place it in the Active Directory script repository for access by Group Policy.

    7. Adjust the GPO created in step 4 by exposing the batch file under User Configuration > Windows Settings > logon.

    This may sound confusing but it works very well.

    Essentially you request the user to restart their PC. Once the PC starts it calls the first VB Script and the RSClientPrint files are copied to the local PC depending on the OS found. When the user logs in, the batch file runs, calls the second VB Script which then registers the RSClientPrint.dll using administrative credentials.

    If you want any further information on how it works, including the VB Script and batch file code, I can post it here.

    Cheers

    Scott

  • Hello Scott,

    We are also having the same issues with Reporting Services R2, would it be possible for you to post the VB Script and batch file code?

    Thanks,

    Ren

  • Hi Ren,

    Batch file code: Very simplistic. It just calls a VBScript.

    START w:\RSClientPrint\regsvr32.vbs

    File Copy Script Code: Just copies the extracted RSClientPrint files to the client PC.

    Option Explicit

    Dim fso

    Dim folder

    Dim fldrName

    Dim os

    Dim shell

    'setup folder and copy files

    fldrName = "C:\RSClientPrint"

    Set fso = CreateObject("Scripting.FileSystemObject")

    If (fso.FolderExists(fldrName)) Then

    'Set folder = fso.CreateFolder("C:\RSClientPrintNew")

    'fldrName = "C:\RSClientPrintNew"

    Wscript.Quit

    Else

    Set folder = fso.CreateFolder(fldrName)

    End If

    os = "C:\Program Files (x86)"

    If (fso.FolderExists(os)) Then

    fso.CopyFile "\\Server\RSClientPrint\x64\*.*", fldrName

    Else

    fso.CopyFile "\\Server\RSClientPrint\x86\*.*", fldrName

    End If

    'setup shell environment to execute regsvr32

    Set shell = CreateObject("Wscript.Shell")

    Set fso = Nothing

    Set folder = Nothing

    DLL registration script code: Registers DLL on client PC.

    Option Explicit

    Dim shell

    Dim pass

    Set shell = CreateObject("Wscript.Shell")

    shell.run "runas.exe /user:DOMAIN\username " & """regsvr32 /s C:\RSClientPrint\RSClientPrint.dll""",2,false

    Wscript.Sleep(1000)

    pass = "password"

    shell.sendkeys pass & "{ENTER}"

    Wscript.Sleep(1000)

    Cheers

    Scott

  • Thank you, I will test this out soon 🙂

Viewing 5 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic. Login to reply