Install RSClientPrint for Reporting Services 2012 using .bat file and still be able to use 2005

9,040

Hey just for future reference you got this the wrong way around. the 32bit DLL files should go to SysWOW64 and the 64bit should go in system32.

Confusing but that is the way it works with DLL's is SysWOW64 contains the 32bit emulated DLL files and system32 contains the native 64 bit ones.

Hope this helps someone.

Share:
9,040

Related videos on Youtube

John Wesley Gordon
Author by

John Wesley Gordon

Software Developer at Leidos. Owner of ZoneGordon.Com and Salted Chips Studios. Worked for 6 Months as a contractor for TekSystems, Worked for 14 years as a Systems Administrator and Developer for TimBar Packaging & Display / Packaging Corporation of America. I work in multiple programming areas including ASP.NET, C#, Java, JavaScript, HTML, CSS, and SQL to name a few.

Updated on September 18, 2022

Comments

  • John Wesley Gordon
    John Wesley Gordon over 1 year

    I have a Reporting Services 2005 server that when users accessed it and tried to print reports would get a message asking them to install the print control, which they could not do because of lack of permission. A work around I had found at the time was to copy the .dll and .rll files to their computer on startup via group policy and then register it. Now we are upgrading to Reporting Services 2012 and the print control has changed and I need to do this again.

    I have 3 questions.

    I can't locate the .dll and .rll files on my computer to put in a share. Where should I look for them.
    I have a mix of 32 bit and 64 bit machines. Will this make a difference in what files I need? Will the script below otherwise still work?

    if not exist %windir%\system32\rsver3.txt goto ADD
    
    GOTO END
    
    :ADD
    regsvr32.exe /u /s rsclientprint.dll
    copy \\server\share\RSClientPrint.dll %windir%\system32
    copy \\server\share\RSClientPrint_1028.rll %windir%\system32
    copy \\server\share\RSClientPrint_1031.rll %windir%\system32
    copy \\server\share\RSClientPrint_1033.rll %windir%\system32
    copy \\server\share\RSClientPrint_1036.rll %windir%\system32
    copy \\server\share\RSClientPrint_1040.rll %windir%\system32
    copy \\server\share\RSClientPrint_1041.rll %windir%\system32
    copy \\server\share\RSClientPrint_1042.rll %windir%\system32
    copy \\server\share\RSClientPrint_1043.rll %windir%\system32
    copy \\server\share\RSClientPrint_1046.rll %windir%\system32
    copy \\server\share\RSClientPrint_1053.rll %windir%\system32
    copy \\server\share\RSClientPrint_2052.rll %windir%\system32
    copy \\server\share\RSClientPrint_3082.rll %windir%\system32
    copy \\server\share\gdiplus.dll %windir%\system32
    copy \\server\share\rsver3.txt %windir%\system32
    regsvr32.exe /s  %windir%\system32\rsclientprint.dll
    :END
    

    Update

    I modified the above script to the following and placed the x86 and 64 files in different folders.

    These files were extracted from the c:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\bin\RSClientPrint-x64.cab and c:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\bin\RSClientPrint-x86.cab and placed in the appropriate folders

    and it appears to work on 32 bit and 64 bit systems, however, it no longer allows you to print from Reporting Services 2005 on the 32 bit machines. It prompts to install the print control. The 64 bit machines can print from both Reporting Services 2005 and 2012 after running this script.

    if exist %windir%\SysWOW64\nul goto X64
    GOTO X86
    
    :X86
    if not exist %windir%\system32\rsver5.txt goto ADD86
    
    GOTO END
    
    :ADD86
    
    regsvr32.exe /u /s %windir%\system32\rsclientprint.dll
    copy /Y \\server\share\x86\RSClientPrint.dll %windir%\system32
    copy /Y \\server\share\x86\RSClientPrint_1028.rll %windir%\system32
    copy /Y \\server\share\x86\RSClientPrint_1031.rll %windir%\system32
    copy /Y \\server\share\x86\RSClientPrint_1033.rll %windir%\system32
    copy /Y \\server\share\x86\RSClientPrint_1036.rll %windir%\system32
    copy /Y \\server\share\x86\RSClientPrint_1040.rll %windir%\system32
    copy /Y \\server\share\x86\RSClientPrint_1041.rll %windir%\system32
    copy /Y \\server\share\x86\RSClientPrint_1042.rll %windir%\system32
    copy /Y \\server\share\x86\RSClientPrint_1046.rll %windir%\system32
    copy /Y \\server\share\x86\RSClientPrint_1049.rll %windir%\system32
    copy /Y \\server\share\x86\RSClientPrint_2052.rll %windir%\system32
    copy /Y \\server\share\x86\RSClientPrint_3082.rll %windir%\system32
    copy /Y \\server\share\gdiplus.dll %windir%\system32
    copy /Y \\server\share\rsver5.txt %windir%\system32
    regsvr32.exe /s %windir%\system32\rsclientprint.dll
    
    GOTO FINISH
    
    :X64
    
    if not exist %systemroot%\SysWoW64\rsver5.txt goto ADD64
    
    GOTO END
    
    :ADD64
    
     %systemroot%\SysWoW64\regsvr32.exe /u /s %systemroot%\SysWoW64\rsclientprint64.dll
     %systemroot%\SysWoW64\regsvr32.exe /u /s %systemroot%\SysWoW64\rsclientprint.dll
    
    copy /Y \\server\share\64\RSClientPrint64.dll %systemroot%\SysWoW64
    copy /Y \\server\share\64\RSClientPrint64_1028.rll %systemroot%\SysWoW64
    copy /Y \\server\share\64\RSClientPrint64_1031.rll %systemroot%\SysWoW64
    copy /Y \\server\share\64\RSClientPrint64_1033.rll %systemroot%\SysWoW64
    copy /Y \\server\share\64\RSClientPrint64_1036.rll %systemroot%\SysWoW64
    copy /Y \\server\share\64\RSClientPrint64_1040.rll %systemroot%\SysWoW64
    copy /Y \\server\share\64\RSClientPrint64_1041.rll %systemroot%\SysWoW64
    copy /Y \\server\share\64\RSClientPrint64_1042.rll %systemroot%\SysWoW64
    copy /Y \\server\share\64\RSClientPrint64_1046.rll %systemroot%\SysWoW64
    copy /Y \\server\share\64\RSClientPrint64_1049.rll %systemroot%\SysWoW64
    copy /Y \\server\share\64\RSClientPrint64_2052.rll %systemroot%\SysWoW64
    copy /Y \\server\share\64\RSClientPrint64_3082.rll %systemroot%\SysWoW64
    
    copy /Y \\server\share\x86\RSClientPrint.dll %systemroot%\SysWoW64
    copy /Y \\server\share\x86\RSClientPrint_1028.rll %systemroot%\SysWoW64
    copy /Y \\server\share\x86\RSClientPrint_1031.rll %systemroot%\SysWoW64
    copy /Y \\server\share\x86\RSClientPrint_1033.rll %systemroot%\SysWoW64
    copy /Y \\server\share\x86\RSClientPrint_1036.rll%systemroot%\SysWoW64
    copy /Y \\server\share\x86\RSClientPrint_1040.rll %systemroot%\SysWoW64
    copy /Y \\server\share\x86\RSClientPrint_1041.rll %systemroot%\SysWoW64
    copy /Y \\server\share\x86\RSClientPrint_1042.rll %systemroot%\SysWoW64
    copy /Y \\server\share\x86\RSClientPrint_1046.rll %systemroot%\SysWoW64
    copy /Y \\server\share\x86\RSClientPrint_1049.rll %systemroot%\SysWoW64
    copy /Y \\server\share\x86\RSClientPrint_2052.rll %systemroot%\SysWoW64
    copy /Y \\server\share\x86\RSClientPrint_3082.rll %systemroot%\SysWoW64
    
    copy /Y \\server\share\gdiplus.dll %systemroot%\SysWoW64
    copy /Y \\server\share\rsver5.txt %systemroot%\SysWoW64
    
    %systemroot%\SysWoW64\regsvr32.exe  /s %systemroot%\SysWoW64\rsclientprint64.dll
    %systemroot%\SysWoW64\regsvr32.exe  /s %systemroot%\SysWoW64\rsclientprint.dll
    
    GOTO FINISH
    
    :FINISH
    
    :END