Monday, March 26, 2012

RSClientPrint deployment question.

I have read the thread 'print active x question' posted more than a year ago
and would like to follow up...
We have an application using a webbrowser control to access reporting
services and have run into the issue of needing RSClientPrint installed
during our setup because security policies/settings may prevent the user from
installing the activex at runtime.
Has MS provided an .msi or merge module, etc. to deploy this yet? If not, is
there a definitive answer to which folder we should put the files?...is it
possible/safe to put them in Downloaded Program Files?
Thanks!
KevinHello Kevin,
We solved this problem with this small startscript in the computer group
policy.
Dim env, wshShell, fso
Set wshShell = WScript.CreateObject("WScript.Shell")
Set env = wshShell.Environment("PROCESS")
Set fso = CreateObject("Scripting.FileSystemObject")
if(Not (fso.FileExists (env("windir") & "\downloaded program
files\RSClientPrint.dll"))) Then
On Error Resume next
fso.CopyFile "\\server\rsclient\gdiplus.dll",env("windir") & "\downloaded
program files\"
On Error Resume next
fso.CopyFile "\\server\rsclient\RSClientPrint.dll", env("windir") &
"\downloaded program files\"
On Error Resume next
fso.CopyFile "\\server\rsclient\RSClientPrint.inf", env("windir") &
"\downloaded program files\"
On Error Resume next
fso.CopyFile "\\server\rsclient\RSClientPrint_1028.rll", env("windir") &
"\downloaded program files\"
On Error Resume next
fso.CopyFile "\\server\rsclient\RSClientPrint_1031.rll", env("windir") &
"\downloaded program files\"
On Error Resume next
fso.CopyFile "\\server\rsclient\RSClientPrint_1033.rll", env("windir") &
"\downloaded program files\"
On Error Resume next
fso.CopyFile "\\server\rsclient\RSClientPrint_1036.rll", env("windir") &
"\downloaded program files\"
On Error Resume next
fso.CopyFile "\\server\rsclient\RSClientPrint_1040.rll", env("windir") &
"\downloaded program files\"
On Error Resume next
fso.CopyFile "\\server\rsclient\RSClientPrint_1041.rll", env("windir") &
"\downloaded program files\"
On Error Resume next
fso.CopyFile "\\server\rsclient\RSClientPrint_1042.rll", env("windir") &
"\downloaded program files\"
On Error Resume next
fso.CopyFile "\\server\rsclient\RSClientPrint_1043.rll", env("windir") &
"\downloaded program files\"
On Error Resume next
fso.CopyFile "\\server\rsclient\RSClientPrint_1046.rll", env("windir") &
"\downloaded program files\"
On Error Resume next
fso.CopyFile "\\server\rsclient\RSClientPrint_1053.rll", env("windir") &
"\downloaded program files\"
On Error Resume next
fso.CopyFile "\\bkhl\host\stdsw\tools\rsclient\RSClientPrint_2052.rll",
env("windir") & "\downloaded program files\"
On Error Resume next
fso.CopyFile "\\bkhl\host\stdsw\tools\rsclient\RSClientPrint_3082.rll",
env("windir") & "\downloaded program files\"
wshShell.Run "REGSVR32.EXE /s """ & env("windir") & "\downloaded program
files\RSClientPrint" & """", vbMinimizedNoFocus
End if
on error resume next
Hope it helps.
Regards
Bernhard|||Bernhard,
Thanks. It answers my question that other people are having the same
problem and handling it by manually deploying the files to the Downloaded
Program Files folder.
We will most likely add the files to our existing client install. It would
be nice if Reporting Services contained a Windows Installer module for this
(hint hint).
Thanks,
Kevin
"Bernhard Weitlaner" wrote:
> Hello Kevin,
> We solved this problem with this small startscript in the computer group
> policy.
>
> Dim env, wshShell, fso
> Set wshShell = WScript.CreateObject("WScript.Shell")
> Set env = wshShell.Environment("PROCESS")
> Set fso = CreateObject("Scripting.FileSystemObject")
> if(Not (fso.FileExists (env("windir") & "\downloaded program
> files\RSClientPrint.dll"))) Then
> On Error Resume next
> fso.CopyFile "\\server\rsclient\gdiplus.dll",env("windir") & "\downloaded
> program files\"
> On Error Resume next
> fso.CopyFile "\\server\rsclient\RSClientPrint.dll", env("windir") &
> "\downloaded program files\"
> On Error Resume next
> fso.CopyFile "\\server\rsclient\RSClientPrint.inf", env("windir") &
> "\downloaded program files\"
> On Error Resume next
> fso.CopyFile "\\server\rsclient\RSClientPrint_1028.rll", env("windir") &
> "\downloaded program files\"
> On Error Resume next
> fso.CopyFile "\\server\rsclient\RSClientPrint_1031.rll", env("windir") &
> "\downloaded program files\"
> On Error Resume next
> fso.CopyFile "\\server\rsclient\RSClientPrint_1033.rll", env("windir") &
> "\downloaded program files\"
> On Error Resume next
> fso.CopyFile "\\server\rsclient\RSClientPrint_1036.rll", env("windir") &
> "\downloaded program files\"
> On Error Resume next
> fso.CopyFile "\\server\rsclient\RSClientPrint_1040.rll", env("windir") &
> "\downloaded program files\"
> On Error Resume next
> fso.CopyFile "\\server\rsclient\RSClientPrint_1041.rll", env("windir") &
> "\downloaded program files\"
> On Error Resume next
> fso.CopyFile "\\server\rsclient\RSClientPrint_1042.rll", env("windir") &
> "\downloaded program files\"
> On Error Resume next
> fso.CopyFile "\\server\rsclient\RSClientPrint_1043.rll", env("windir") &
> "\downloaded program files\"
> On Error Resume next
> fso.CopyFile "\\server\rsclient\RSClientPrint_1046.rll", env("windir") &
> "\downloaded program files\"
> On Error Resume next
> fso.CopyFile "\\server\rsclient\RSClientPrint_1053.rll", env("windir") &
> "\downloaded program files\"
> On Error Resume next
> fso.CopyFile "\\bkhl\host\stdsw\tools\rsclient\RSClientPrint_2052.rll",
> env("windir") & "\downloaded program files\"
> On Error Resume next
> fso.CopyFile "\\bkhl\host\stdsw\tools\rsclient\RSClientPrint_3082.rll",
> env("windir") & "\downloaded program files\"
> wshShell.Run "REGSVR32.EXE /s """ & env("windir") & "\downloaded program
> files\RSClientPrint" & """", vbMinimizedNoFocus
> End if
> on error resume next
>
> Hope it helps.
> Regards
> Bernhard|||Kevin,
If you have visual studio it's a pretty simple job to create an MSI to do
the same thing as Bernards script. Then you can deploy the MSI with a GPO or
whatever means you want.
Regards,
Martin.
"Kg" wrote:
> Bernhard,
> Thanks. It answers my question that other people are having the same
> problem and handling it by manually deploying the files to the Downloaded
> Program Files folder.
> We will most likely add the files to our existing client install. It would
> be nice if Reporting Services contained a Windows Installer module for this
> (hint hint).
> Thanks,
> Kevin
> "Bernhard Weitlaner" wrote:
> > Hello Kevin,
> >
> > We solved this problem with this small startscript in the computer group
> > policy.
> >
> >
> > Dim env, wshShell, fso
> > Set wshShell = WScript.CreateObject("WScript.Shell")
> > Set env = wshShell.Environment("PROCESS")
> > Set fso = CreateObject("Scripting.FileSystemObject")
> >
> > if(Not (fso.FileExists (env("windir") & "\downloaded program
> > files\RSClientPrint.dll"))) Then
> >
> > On Error Resume next
> > fso.CopyFile "\\server\rsclient\gdiplus.dll",env("windir") & "\downloaded
> > program files\"
> > On Error Resume next
> > fso.CopyFile "\\server\rsclient\RSClientPrint.dll", env("windir") &
> > "\downloaded program files\"
> > On Error Resume next
> > fso.CopyFile "\\server\rsclient\RSClientPrint.inf", env("windir") &
> > "\downloaded program files\"
> > On Error Resume next
> > fso.CopyFile "\\server\rsclient\RSClientPrint_1028.rll", env("windir") &
> > "\downloaded program files\"
> > On Error Resume next
> > fso.CopyFile "\\server\rsclient\RSClientPrint_1031.rll", env("windir") &
> > "\downloaded program files\"
> > On Error Resume next
> > fso.CopyFile "\\server\rsclient\RSClientPrint_1033.rll", env("windir") &
> > "\downloaded program files\"
> > On Error Resume next
> > fso.CopyFile "\\server\rsclient\RSClientPrint_1036.rll", env("windir") &
> > "\downloaded program files\"
> > On Error Resume next
> > fso.CopyFile "\\server\rsclient\RSClientPrint_1040.rll", env("windir") &
> > "\downloaded program files\"
> > On Error Resume next
> > fso.CopyFile "\\server\rsclient\RSClientPrint_1041.rll", env("windir") &
> > "\downloaded program files\"
> > On Error Resume next
> > fso.CopyFile "\\server\rsclient\RSClientPrint_1042.rll", env("windir") &
> > "\downloaded program files\"
> > On Error Resume next
> > fso.CopyFile "\\server\rsclient\RSClientPrint_1043.rll", env("windir") &
> > "\downloaded program files\"
> > On Error Resume next
> > fso.CopyFile "\\server\rsclient\RSClientPrint_1046.rll", env("windir") &
> > "\downloaded program files\"
> > On Error Resume next
> > fso.CopyFile "\\server\rsclient\RSClientPrint_1053.rll", env("windir") &
> > "\downloaded program files\"
> > On Error Resume next
> > fso.CopyFile "\\bkhl\host\stdsw\tools\rsclient\RSClientPrint_2052.rll",
> > env("windir") & "\downloaded program files\"
> > On Error Resume next
> > fso.CopyFile "\\bkhl\host\stdsw\tools\rsclient\RSClientPrint_3082.rll",
> > env("windir") & "\downloaded program files\"
> >
> > wshShell.Run "REGSVR32.EXE /s """ & env("windir") & "\downloaded program
> > files\RSClientPrint" & """", vbMinimizedNoFocus
> >
> > End if
> > on error resume next
> >
> >
> > Hope it helps.
> >
> > Regards
> > Bernhard|||Hello Martin
> If you have visual studio it's a pretty simple job to create an MSI to do
> the same thing as Bernards script. Then you can deploy the MSI with a GPO or
> whatever means you want.
>
This sounds very interesting. How is this possible? I have visual studio.
Regards
Bernhard|||Bernhard,
Here's the recipe...
You'll need the extracted the CabFile contents.
Then in Visual Studio:
1. Create a New Set Up Project (it's under Other Project Types). You can
call it what you like but I used RSClientPrintRedist.
2. In the Configuration properties of the SetUp Project click the
prerequisite... button and make sure none of the prerequisites are checked
and that the Create setup program to install prerequisite components is
cleared. I usually do this first because it's easy to forget and GPO
processing seems to fail if it tries to fire of an external setup file.
3. Next on the project properties set InstallAllUsers to true.
4. Under File System on Target Machine click on Applciation Folder and set
the default location to [WindowsFolder]Downloaded Program Files. You can
remove the other folders they're not needed.
5. Add all the extracted files to this folder.
6. On the properties tab for the rsclientprint.dll set the Register property
to vsdrfCOMSelfReg
7. Under the Registry on Target Machine Settings remove HKLM and KKCU
[Manufacturer Keys]
8. Under User Interface remove the Target Directory dialog screen. We don't
need to be able to specify an alternative location.
9. Build you project.
If all goes well you should have a file "RSClientPrintRedist.msi" under the
current config directoy of your project.
Creating setup kits this way is really powerful, and you don't have to be
deploying a .NET app to use them. If you have a play around with the various
options you'll see there isn't much you can't do on the target machine.
Martin
"Bernhard Weitlaner" wrote:
> Hello Martin
> >
> > If you have visual studio it's a pretty simple job to create an MSI to do
> > the same thing as Bernards script. Then you can deploy the MSI with a GPO or
> > whatever means you want.
> >
> This sounds very interesting. How is this possible? I have visual studio.
> Regards
> Bernhard|||Hello Martin,
Thank you very much.
Regards
Bernhardsql

No comments:

Post a Comment