
Tengo un servidor de Reporting Services 2005 que, cuando los usuarios accedían a él e intentaban imprimir informes, recibían un mensaje pidiéndoles que instalaran el control de impresión, lo cual no podían hacer por falta de permiso. Una solución alternativa que encontré en ese momento fue copiar los archivos .dll y .rll a su computadora al iniciar a través de la política de grupo y luego registrarlo. Ahora estamos actualizando a Reporting Services 2012 y el control de impresión ha cambiado y necesito hacerlo nuevamente.
Tengo 3 preguntas.
No puedo ubicar los archivos .dll y .rll en mi computadora para compartirlos. ¿Dónde debería buscarlos?
Tengo una combinación de máquinas de 32 y 64 bits. ¿Esto hará una diferencia en los archivos que necesito? ¿Seguirá funcionando el siguiente script?
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
Actualizar
Modifiqué el script anterior a lo siguiente y coloqué los archivos x86 y 64 en carpetas diferentes.
Estos archivos se extrajeron de c:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\bin\RSClientPrint-x64.cab y c:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ ReportServer\bin\RSClientPrint-x86.cab y colocarlo en las carpetas apropiadas
y parece funcionar en sistemas de 32 y 64 bits; sin embargo, ya no permite imprimir desde Reporting Services 2005 en máquinas de 32 bits. Solicita instalar el control de impresión. Las máquinas de 64 bits pueden imprimir desde Reporting Services 2005 y 2012 después de ejecutar este 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
Respuesta1
Hola, solo para referencia futura, entendiste esto al revés. los archivos DLL de 32 bits deben ir a SysWOW64 y los de 64 bits deben ir a system32.
Confuso, pero así es como funciona con las DLL, SysWOW64 contiene los archivos DLL emulados de 32 bits y system32 contiene los nativos de 64 bits.
Espero que esto ayude a alguien.
Respuesta2
Falta el archivo Rsclientprint.inf.