/build/static/layout/Breadcrumb_cap_w.png

HKCU Keys, Separate Componets

Hello fellow app-deployers,

I'm working with Interwoven iManage DeskSite v8.2 and Interwoven iManage FileSite 8.2 (document management system client applications)

Installing the application goes fine, with no problems - and our firm wants to add customizations to the views, settings, etc for each user -- these are all stored by registry entries located in the HKCU hive. The only issue is there are A LOT of registry entries -- probably upwards of 200 entries. [:(]

My initial approach to achieve this would be to create new components for each registry entry, and make this registry entry a key path in the component (to allow for self-repair on first running the application). Each component would only have one registry entry -- as there can only be one key per component.

As you can probably guess, there will be A LOT of components (as there are a lot of registry entries to self-heal).

Is it a good idea to do it this way? Is there a better, more efficient way of achieving this?

Thanks in advance for your input!

*edit*
Wanted to add this will be deployed via AD Group Policy and created using Macrovision InstallSheild Editor 11.5

0 Comments   [ + ] Show comments

Answers (8)

Posted by: JdotQ 16 years ago
Senior Purple Belt
0
I just came across this idea after reading through the ActiveSetup article here (http://itninja.com/blog/view/appdeploy:-articles:-activesetup)

What if I utilized ActiveSetup for this...

From ActiveSetup, can I have it run a simple registry file (ex. reg_customizations.reg) which only contains HKCU data? This file would be stored locally (in the INSTALLDIR)...

In the article, they have ActiveSetup running "Msiexec.exe /fpu....." which will fire off a repair function. I don't really want it to repair in this sense (since the HKCU isnt located in the package). Could I just have ActiveSetup fire off a registry file to merge the data into the HKCU hive??
Posted by: JdotQ 16 years ago
Senior Purple Belt
0
OK, so I just wanted to post my findings/experience with this.

Apparently ActiveSetup can execute anything (VBscript, EXE, Reg file, etc) as long as it's in the StubPath value. I had to play around with it a bit to get it to finally work, but here's what I ended up with;


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\{8B4B08BC-C27C-41F7-9572-3FBE3409637F}]
"StubPath"="C:\\WINDOWS\\regedit.exe /s \"C:\\Program Files\\Interwoven\\WorkSite\\custom_hkcu.reg\""
"Version"="1"


The GUID under the "Installed Components" is the same GUID of the Product Code for the MSI package.

I also noticed that I was unable to achieve the desired results by attempting to use a system variable (ex. %ProgramFiles% instead of C:\Program Files\) in the path to the local .reg file -- ex. "%ProgramFiles%\Interwoven\Worksite\custom_hkcu.reg" did *not* work, while "C:\Program Files\Interwoven\Worksite\custom_hkcu.reg" worked!

And just having the path to the .reg file worked without having to have quotes, but since it was desirable to have the registry changes added silently, then adding the quotes to path was preferred.

Thanks to everyone on the forum that posted about ActiveSetup in the past -- there's some very good info out there! [:D]
Posted by: nheim 16 years ago
10th Degree Black Belt
0

Hi JdotQ,
alway nice to see people make their own findings. :-)
However, let me make a few comments:
Wouldn't do it with the registry file approach. This has caveats, like having hard coded paths in their.
The best way to go, IMHO, would be to do it with the MSI's registry table. You don't need a new component for each line.
A few - or just a single one - does the trick. Figure out, which one really have to be keys (you wouldn't have any keys with reg file).
And isolate this stuff in a single top feature. See: http://www.itninja.com/question/current-user-self-healing
Then call it initially with Active Setup: msiexec /fu {Productcode}

Regards, Nick

Posted by: jmcfadyen 16 years ago
5th Degree Black Belt
0
I would second Nick on the registry approach.

in locked down environments this could get you into some trouble.

to run a reg file users need access to run regedit some domains deny this capability.
Posted by: JdotQ 16 years ago
Senior Purple Belt
0

ORIGINAL: nheim

Hi JdotQ,
alway nice to see people make their own findings. :-)
However, let me make a few comments:
Wouldn't do it with the registry file approach. This has caveats, like having hard coded paths in their.
The best way to go, IMHO, would be to do it with the MSI's registry table. You don't need a new component for each line.
A few - or just a single one - does the trick. Figure out, which one really have to be keys (you wouldn't have any keys with reg file).
And isolate this stuff in a single top feature. See: http://www.itninja.com/question/current-user-self-healing
Then call it initially with Active Setup: msiexec /fu {Productcode}

Regards, Nick

Thanks Nick and jmc for the reply.

If I understand it correctly -- having all these registry entries in one component, there can only be one key per component, so there would only be one registry entry could be a key. And when the self heal starts, it only repairs the key files? So only one registry entry (the key) would be written to HKCU? Or will it repair every registry value inside the component, even if they are not key components?

Thanks again!

Posted by: AngelD 16 years ago
Red Belt
0
It will install/repair the whole component if the components keypath is missing/broken.
Posted by: JdotQ 16 years ago
Senior Purple Belt
0
ORIGINAL: AngelD

It will install/repair the whole component if the components keypath is missing/broken.

Ah, my misunderstanding. Thanks for clearing it up [:D]
Posted by: jmcfadyen 16 years ago
5th Degree Black Belt
0
Its good practice where possible to put the registry in the same component as the resource (dll)

If you do this reference counting will be performed on the component (basically the dll) the registry would be part of the component and would be deployed whenever the dll is deployed.

this becomes a little more complex if you have HKCU registry as well but this is unlikely in the event your registering a dll

hkcu can go in a separate component.

I have written some articles on self healing and posted them here and wise and myitforum if you want more detail lookup

"Current User Healing"

it explains the entire healing process in detail.
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ